10

我正在尝试使用以下内容在 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>

当我单击链接时,我会转到部分页面数据的完整页面视图。

4

4 回答 4

14

原来 jquery.unobtrusive-ajax.js 默认不包括在内。添加它解决了这个问题。

于 2013-08-30T20:44:07.030 回答
12

作为有关使其正常工作的附加说明。我希望 VS 2013 RTM 包括这个,但无论哪种方式,这应该让你启动并运行

  • 通过 nuget 安装 jquery-validate,方法是转到 tools-library 包管理器-> 包管理器控制台并输入
安装包 Microsoft.jQuery.Ajax.Unobtrusive
  • 在 /app_start/bundleconfig.cs 中配置你的包
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
    "~/Scripts/jquery.unobtrusive*",
    "~/Scripts/jquery.validate*")
);
  • 将您的捆绑包添加到您的 _layout.cshtml 下
@Scripts.Render("~/bundles/jquery")

或将其包含在您要使用的每个视图中

@section 脚本 {
    @Scripts.Render("~/bundles/jqueryval")
}
于 2013-09-04T07:50:37.833 回答
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>    
于 2014-03-14T09:13:37.010 回答
0

1.使用NuGet安装Microsoft.jQuery.Unobtrusive.Ajax

2.在你的_Layout.cshtml中添加对Jquery和Unobtrusive的引用

@Scripts.Render("~/bundles/jquery")
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" >

于 2017-07-20T13:34:09.507 回答