我有一个由模型生成的视图作为任务列表。当点击某个任务时,我希望我的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,以便可以根据此值刷新详细信息视图,但不会发生任何事情。
答案 0 :(得分:2)
由于num
是一个C#变量,并且您正在混合HTML和“常规”代码,因此您需要告诉编译器您正在引用它管理的变量。不要连接字符串,只需添加@
:
<div class="tasksclick" onclick="callDetail(@num)">
或者,如果你想传递一个字符串参数(这可能是你真正想要的):
<div class="tasksclick" onclick="callDetail('@num')">