我正在尝试使用以下内容在ASP.Net MVC 5(Visual Studio 13)中使用部分视图替换部分页面:
浏览/预订/ Index.cshtml:
<div id="bargainBook">
@Ajax.ActionLink("Click here for the Bargain Book!",
"BargainBook",
new AjaxOptions
{
UpdateTargetId = "bargainBook",
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET"
})
</div>
在BookController中:
public ActionResult BargainBook()
{
var book = GetBargainBook();
return PartialView("_BargainBook", book);
}
private Book GetBargainBook()
{
return db.Books
.OrderBy(b => b.Price)
.First();
}
在_BargainBook.cshtml中:
@model BookDemo.Models.Book
<div>
<p>
<strong>Book</strong>
@Model.Name
</p>
<p>
<strong>Price</strong>
@String.Format("{0:F}", @Model.Price)
</p>
</div>
当我点击链接时,我会转到部分页面数据的完整页面视图。
答案 0 :(得分:14)
事实证明,默认情况下不包含jquery.unobtrusive-ajax.js。添加它解决了这个问题。
答案 1 :(得分:12)
作为关于让这项工作的补充说明。我希望VS 2013 RTM包含这个,但无论哪种方式,这都应该让你开始运行
install-package Microsoft.jQuery.Ajax.Unobtrusive
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.unobtrusive*", "~/Scripts/jquery.validate*") );
@Scripts.Render("~/bundles/jquery")
或将其包含在您想要在
中使用的每个视图中@section Scripts { @Scripts.Render("~/bundles/jqueryval") }
答案 2 :(得分:0)
我遇到了同样的问题,在MVC中用不引人注目的Ajax驱动我 开始表单选择列表过滤器更新,列表重新显示为部分视图。我在下面添加了前两项,但意识到我还需要最后两项。添加后,部分视图结果非常好。
<script src="~/Scripts/jquery-ui.unobtrusive-2.1.0.js" ></script>
<script src="~/Scripts/jquery-ui.unobtrusive-2.1.0.min.js" ></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js" ></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" ></script>
答案 3 :(得分:0)
1.使用NuGet
安装Microsoft.jQuery.Unobtrusive.Ajax2.在_Layout.cshtml中添加对Jquery和Unobtrusive的引用
@ Scripts.Render(&#34;〜/束/的jquery&#34)
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" >