У меня возникла проблема с обновлением ajax div в asp.net mvc3.ASP.NET MVC3 обновление частичного представления ajax
У меня есть вид с содержанием
<div id="post_comments">
@{Html.RenderPartial("_RefreshComments", Model);}
</div>
<div id="commentForm">
@using (Ajax.BeginForm("Details", new { id = Model.Post.PostId }, new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.InsertAfter,
UpdateTargetId = "post_comments"
}
))
{
// form content goes here
<p id="buttons">
<input type="submit" value="@Strings.Save" />
</p>
}
Это мой частичный вид
@model Project.Models.Posts.PostDetailsViewModel
@{
foreach (var c in Model.ApprovedComments)
{
@Html.DisplayFor(x => c)
}
}
У меня есть контроллер
public ActionResult Details(int id, FormCollection form)
{
var model = new PostDetailsViewModel(UnitOfWork, id);
return PartialView("_RefreshComments", model);
}
Я следующий сценарий включены в мой макет cshtml
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
, а также
<appSettings>
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
Это действительно работает, я могу добавить комментарии, но контроллер возвращает только PartialView, не содержится в макете. Меня нашли ASP.net MVC3 - Razor Views and PartialViews with Ajax Postbacks, но ничего от меня не помогли.
У кого-нибудь есть идеи?
Вы можете увидеть запрос AJAX, которые инициированы в вашем яваскрипте инструмента отладки в браузере? Могут ли быть некоторые ошибки JavaScript? Вы гарантировали, что скрипт 'jquery.unobtrusive-ajax.min.js' существует в указанном месте. Вы также ссылались на 'jquery'? –
Нет, Request.IsAjaxRequest() всегда возвращает false. Да, я уверен, что скрипт включен на всех страницах. Да jquery работает, но я не знаю, почему он возвращает false. Я прочитал некоторые темы об этом ... но .... – TheKnyazz