在我的MVC asp.net中,将变量的简单值传递给函数是行不通的



我一直在想为什么我的函数中不能提醒一个简单的字符串。这是我的代码:

<script>
        function getData(str) {
            alert(str);
        }
</script>
//This is the code in the body, 

我只想打印一个简单的awe来测试onClick是否能识别我在名称中传递的值;但是每当onClick方法发生时,web只会提醒一个空字符串。

@foreach (var item in Model) {
    var name = "awe";     
    <tr>
        <td></td>
        <td><a href="#" onclick="getData(name);">@Html.DisplayFor(modelItem => item.DiscountDescs)</a></td>
        <td>@Html.DisplayFor(modelItem => item.DiscountForm)</td>
        <td>@Html.DisplayFor(modelItem => item.DiscountType)</td>
        <td>@Html.DisplayFor(modelItem => item.DiscountMode)</td>
        <td>@Html.DisplayFor(modelItem => item.DiscountValue)</td>
        <td>@Html.DisplayFor(modelItem => item.IsActive)</td>
        <td>@Html.DisplayFor(modelItem => item.IsScheme)</td>
    </tr>
}

更改此项:

<a href="#" onclick="getData(name);">

至:

<a href="#" onclick="getData('@name');">

name在此上下文中不算什么,您必须为c#变量放置@。考虑到当我们需要写c#代码时,我们用前导@符号写它:

例如:

@foreach (var item in Model) 
{
var name ="awe";
<tr>
<td>@name</td>
</tr>
}

如果您打算将var name = "awe";作为JavaScript变量包括在内,则需要将其放入<script>元素中:

<script>
    var name = "awe";
</script>