我力求找到答案并尝试了几种方法。任何帮助将不胜感激谢谢!我已经查看了哪些更新页面而无需使用 ajax 脚本在每次点击时重新加载。下面是代码。但是在生成整个部分视图之后,我希望用户在单击与控制器用户不相关的链接时重定向完整的不同视图。
我的观点
@model IMONLP.Models.Search
@{
ViewBag.Title = "Search";
}
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
@using (Ajax.BeginForm("Search", new AjaxOptions() { UpdateTargetId = "results"
}))
{
<br />
@Html.TextBoxFor(m => m.search_text, new { style = "width: 200px;" })
<input type="submit" value="search" />
}
@Ajax.ActionLink("Try Demo", "PLNHK", "PLNHK", new AjaxOptions { })
// this ajax link should redirect to different view,
<div id="results">
@if (!String.IsNullOrEmpty(@Model.search_text))
{
Html.RenderPartial("Searchprocess", Model);
}
</div>
我的控制器:
public ActionResult Search(Search s)
{
//do something
return PartialView("Searchprocess", s);
}
public ActionResult Selected(Search s)
{
//DO something
return PartialView("Selected", s);
}
上面的“TryDEMO”“PLNHK”ajax 动作链接必须重定向到新控制器和新动作,并返回该动作返回的视图。每次单击它时,我发现它移动到该控制器,然后移动到相应的视图,但它又回到了旧页面。我使用 @html.actionlink 而不是 Ajax,但现在我收到了这个错误
The "RenderBody" method has not been called for layout page "~/Views/PLNHK/PLNHK.cshtml".
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
编辑:我确实创建了 PLNHK.cshtml。当我试图调试这个时,控件转到 PLNHK 控制器,然后到 PLNHK 视图(PLNHK.cshtml)解析该页面中的每一步,但最后我会得到输出是旧页面。我在想可能是之前页面上的 Ajax 脚本是原因。