Ответ 1
Оказывается, что jquery.unobtrusive-ajax.js по умолчанию не включен. Добавление этого решения проблемы.
Я пытаюсь заменить часть страницы частичным представлением в ASP.Net MVC 5 (Visual Studio 13), используя следующее:
Views/Book/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>
Когда я нажимаю на ссылку, я перехожу к полному просмотру страниц частичных данных страницы.
Оказывается, что jquery.unobtrusive-ajax.js по умолчанию не включен. Добавление этого решения проблемы.
В качестве дополнительной заметки о том, как это работает. Я надеюсь, что RT 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") }
У меня была одна и та же проблема, которая заставила меня замочить с ненавязчивым Ajax в MVC с начните обновлять фильтр выбора формы, и список повторно отображается как частичный вид. Я добавил первые два пункта ниже, но понял, что мне также нужны последние два. После добавления результаты частичного просмотра появились очень красиво.
<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>
1.Установите Microsoft.jQuery.Unobtrusive.Ajax с помощью NuGet
2. Добавьте ссылку на JQuery и ненавязчивую в свой _Layout.cshtml
@Scripts.Render( "~/связки/JQuery" ) <script src="~/Scripts/jquery.unobtrusive-ajax.min.js" >