我在模型中具有此简单的用户列表。如果我们单击一个用户,我想将该用户设置为所选的用户并刷新部分视图。我的代码看起来像:
<div id="myPartialView">
@if (@Model.ChosenUser != null)
{
@Model.ChosenUser.UserName
}
<ul>
@foreach (var u in Model.Users)
{
<li>
<a href='@Url.Action("ChooseUser", "Controller", new { userId = u.UserId })'>@u.UserName</a>
</li>
}
</ul>
控制器方法返回OK((;我当前的代码将我重定向到一个空页面,我必须返回并刷新页面以查看模型更改。
我的问题是,如何在剃须刀操作后仅刷新这种部分视图?
您需要在此处使用Ajax.ActionLink
:
@foreach (var u in Model.Users)
{
<li>
@Ajax.ActionLink(u.UserName, // <-- Text to display
"Choose User", // <-- Action Name
"Controller", // <-- Controller Name
new AjaxOptions
{
UpdateTargetId="myPartialView", // <-- DOM element ID to update
InsertionMode = InsertionMode.Replace, // <-- Replace the content of DOM element
HttpMethod = "GET" // <-- HTTP method
})
</li>
}
辅助方法将渲染使用指定值创建锚标记元素所需的HTML,并且您需要确保在Master布局中添加了脚本的脚本。
为此,您可以在这里查看,需要哪些脚本才能先决条件:
如何使用ajax.actionlink?
,您的操作方法应返回与模型中填充数据的部分视图所期望的相同类型的模型。
请参阅以下帖子,以详细了解Ajax Action链接:
http://www.c-sharpcorner.com/uploadfile/abhikumarvatsa/ajax-actionlink-andlink-and-html-actrink-actrink-ink-in-mvc/