【发布时间】:2017-03-09 15:46:03
【问题描述】:
我正在尝试将对象从 cshtml 视图传递给 JQuery,cshtml 代码:
foreach (var item in Model)
{
<tr class="link" data-graduate="@item" data-url="@Url.Action("PopulateModal","CMIPGraduate")">
<td>@Html.DisplayFor(display => item.State)</td>
<td>@Html.DisplayFor(display => item.Name)</td>
</tr>
}
JQuery 代码:
$(document).ready(function () {
$(".link").click(function () {
alert($(".link").data("graduate"))
$.ajax({
type: "get",
url: $(".link").data("url"),
data:{graduate:$(".link").data("graduate")}
})
$("#myModal").modal("show");
})
})
对象到达控制器时始终为空,我试图在我的JQuery 代码中使用alert 显示它,但我得到的只是这样的:MyProject.Viewmodels.MyClassVM,我一直在尝试使用alert(JSON.stringify($(".link").data("graduate"))),但我得到了相同的结果。我知道在我的 cshtml 视图中我可以做这样的事情:
<tr class="link" data-graduate="@item.Name" data-url="@Url.Action("PopulateModal","CMIPGraduate")">
我会在JQuery 函数中轻松获得名称,但我不想在我的cshtml 视图中按字段创建data- 属性,如果我有500 个字段怎么办?我更愿意获取整个对象并将其发送到我的控制器操作。
以防万一这是我的控制器操作:
public ActionResult PopulateModal(MyClassVM graduate)
{
return PartialView(graduate);
}
【问题讨论】:
标签: javascript jquery asp.net-mvc razor