我有一个 MVC 应用程序。它有一个局部视图,通过循环呈现多个表单。这些是 ajax 表单,应该在提交时更新 UI。问题是我可以进入控制器并正确更改模型但 UI 没有更新。
这是我的片面观点。您可以看到一个创建许多 ajax 表单的循环......
@{
Layout = string.Empty;
}
<div id="divTileHistory">
@foreach (var t in Model.TileHistory)
{
<article class="tile-prev">
@using (Ajax.BeginForm("RemoveTileFromHistory", "Home", new { controller = "Home" }, new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divTileHistory" }, new { }))
{
<div class="tile-prev-inner">
<h1>
@t.Title</h1>
<p>
@t.Quote1</p>
</div>
<input type="hidden" name="archiveTileId" id="archiveTileId" value="@t.ArchiveTileId" />
<input id="submit_@t.ArchiveTileId" type="submit" value="Delete" class="button primary small radius checkin" />
}
</article>
}
</div>
部分视图呈现在主机页面上,如下所示......
<section class="user-prev-tiles row">
<h3>
Tiles by @Model.User.SafeUserName</h3>
@Html.Partial("ProfileArchiveTilesPartial", Model)
</section>
我的控制器看起来像这样......
[Authorize]
public PartialViewResult RemoveTileFromHistory(string archiveTileId)
{
UserModelActions u = new UserModelActions((User as CustomPrincipal).Id);
u.DeleteTileFromHistory(int.Parse(archiveTileId));
UserModel um = new UserModel((User as CustomPrincipal).Id);
return PartialView("ProfileArchiveTilesPatial", um);
}
页面上还有另一个部分视图可以正确更新,所以我确定我包含了正确的脚本。我的控制器也被正确地调用表单的提交。
我还认为我正确设置了“目标 div”ID。
有谁知道为什么这可能不起作用?