【发布时间】:2012-05-12 14:24:10
【问题描述】:
我在 asp.net mvc3 中遇到 ajax 更新 div 的问题。
我有一个包含内容的视图
<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>
确实有效,我可以添加 cmets,但控制器只返回 PartialView,不包含在布局中。我找到了ASP.net MVC3 - Razor Views and PartialViews with Ajax Postbacks,但从那里没有任何帮助。
有人有什么想法吗?
【问题讨论】:
-
您能在浏览器的 javascript 调试工具中看到 AJAX 请求被触发吗?会不会有一些 javascript 错误?您是否确保
jquery.unobtrusive-ajax.min.js脚本存在于指定位置。你也引用了jquery吗? -
不,Request.IsAjaxRequest() 总是返回 false。是的,我确信所有页面上都启用了该脚本。是的 jquery 可以工作,但我不知道为什么它返回 false。我已经阅读了一些关于这个的主题......但是......
标签: ajax asp.net-mvc-3 partial-views