在asp.net ajax中,部分视图响应替换了html,只渲染了部分视图。 在下面的代码片段中,当我单击ActionLink“Steps”时,将返回部分视图并替换Details.cshtml。
我需要的是这个局部视图应该只替换“main-content-div”div。
请帮忙。感谢
查看:Details.cshtml
<div class="main-body">
<table>
<tr>
<td class="left-sidebar extended">
@Ajax.ActionLink("Steps", "Steps", new { id = ViewBag.Id }, new AjaxOptions { AllowCache = false, UpdateTargetId = "main-content-div", InsertionMode=InsertionMode.Replace })
</td>
<td class="main-wrapper">
<div class="main-content" id="main-content-div">
This is the default stuff which I'll be replacing...
</div>
</td>
<td class="right-sidebar"></td>
</tr>
</table>
行动方法:
[HttpGet]
public PartialViewResult Steps(string id)
{
//reading model from db
return PartialView("~/Views/Author/Exercise/_StepsPartial.cshtml", Model);
}
部分视图:
@model IEnumerable<Model>
<div>
<div>
<input type="text" />
</div>
</div>
答案 0 :(得分:2)
您需要将jquery.unobtrusive-ajax.min.js
添加到项目中才能实现此目的。
转到Nuget Console Package Manager控制台并输入:
Install-Package Microsoft.jQuery.Unobtrusive.Ajax
然后,您只需要在_Layout.cshtml
顶部添加引用或查看相关脚本:
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>