如何在表行单击后刷新局部视图
我有表,与模型相关联。
@foreach (var item in Model) { @Html.DisplayFor(x => item.Field1) @Html.DisplayFor(x => item.Field2) }
如何使用ajax更新我的局部视图,以便从表中编辑所选模型。 我删除了onclick="window.location.href = '@Url.Action("Action", new RouteValueDictionary { { "id", item.Id } })'"
并添加了脚本:
$(function () { $('tr').click(function () { $.ajax({ url: '@Url.Action("Action", new RouteValueDictionary { { "id", ??? } })', type: 'GET', cache: false, success: function (result) { $('#partialView_div').html(result); } }); return false; }); });
但是,我现在不知道如何将Model.Id
传递给这个脚本。
您可以使用属性来保存item.Id
并在事件处理程序中获取它。 此外,您不需要使用window.location.href
CSHTML
@foreach (var item in Model) { @Html.DisplayFor(x => item.Field1) @Html.DisplayFor(x => item.Field2) }
JavaScript的
$('tr.deleteItem').click(function () { $.ajax({ url: $(this).data("url"), type: 'GET', cache: false, success: function (result) { $('#partialView_div').html(result); } }); return false; });
要么
CSHTML
@foreach (var item in Model) { @Html.DisplayFor(x => item.Field1) @Html.DisplayFor(x => item.Field2) }
JavaScript的
$('tr.deleteItem').click(function () { var url = '@Url.Action("Action", "Controller", { "id" = "???" })'; url = url.replace("???", $(this).data("item-id")); $.ajax({ url: url, type: 'GET', cache: false, success: function (result) { $('#partialView_div').html(result); } }); return false; });
我会尽力使这个变得简单
@foreach (var item in Model) { @Html.DisplayFor(x => item.Field1) @Html.DisplayFor(x => item.Field2) }
jQuery的
$(function () { $('tr').click(function () { $.ajax({ url: 'controller/action/', type: 'GET', cache: false, data:{id:$(thi).data("item-id")}, success: function (result) { $('#partialView_div').html(result); } }); return false; }); });
请按照以下步骤操作,以获得所需的输出。 主视图
@model IEnumerable @{ ViewBag.Title = "Index"; } Index
@foreach (var item in Model) { @item.Id @item.Field1 @item.Field2 }
调节器
[HttpGet] public ActionResult Index() { List obj = new List { new Test{Id=1,Field1="Field11",Field2="Field21"}, new Test{Id=2,Field1="Field12",Field2="Field22"}, new Test{Id=3,Field1="Field13",Field2="Field23"}, }; return View(obj); } public ActionResult Test1(int itemid) { PartialViewModel obj = new PartialViewModel(); obj.Id = itemid; return PartialView("~/Views/Partial1.cshtml", obj); }
模型
public class Test { public int Id; public string Field1; public string Field2; } public class PartialViewModel { public int Id; }
部分视图
@model MvcApplication2.Models.PartialViewModel @Model.Id