onclick with variable in mvc 4

时间:2014-01-24 08:49:41

标签: javascript asp.net-mvc variables

我有一个由模型生成的视图作为任务列表。当点击某个任务时,我希望我的javascript函数接收一个具有不同值的变量来执行。

@model IEnumerable<CreateAndApproveStockCode.Models.Task>

<h3>Tasks</h3>


@if (Model != null)
{
    int num = 0;
    foreach (var task in Model)
    {
        num = task.num;

        <div class="tasksclick" onclick="callDetail("+num+")">
            <div class="taskname">
                @Html.DisplayFor(taskitem => task.name)
            </div>
            <div class="taskdes">
                  @Html.DisplayFor(taskitem => task.description)
            </div>
        </div>
    }
}

<script type="text/javascript">
    function callDetail(d)
    {
        var serviceUrl = "/Detail/Populate?d="+d;
        var request = $.post(serviceUrl);

        request.done(
            function (data)
            {
            $("#detail").html(data);
            }
        );
    }
</script>

num变量从任务模型接收其值,并且需要将此值传递给javascript变量d,以便可以根据此值刷新详细信息视图,但不会发生任何事情。

1 个答案:

答案 0 :(得分:2)

由于num是一个C#变量,并且您正在混合HTML和“常规”代码,因此您需要告诉编译器您正在引用它管理的变量。不要连接字符串,只需添加@

<div class="tasksclick" onclick="callDetail(@num)">

或者,如果你想传递一个字符串参数(这可能是你真正想要的):

<div class="tasksclick" onclick="callDetail('@num')">