我正在使用ASP.NET MVC 5进行Web应用程序。在我看来,我做了所有事情,但是ajax只是不起作用。刷新后我才看到结果。 这是我的观点:
@{
AjaxOptions ajaxOptions = new AjaxOptions {
UpdateTargetId = "CommmentList",
HttpMethod = "Post",
InsertionMode = InsertionMode.Replace};
}
<div id="CommentList">
@using (Ajax.BeginForm("Index", "Comment", ajaxOptions))
{
// some content
<div>
@Html.Action("_AddCommentForItem", "Comment")
</div>
}
</div>
这是在布局视图中:
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.0.min.js" type="text/javascript"></script>
<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
编辑:
这些是评论控制器中的操作:
// GET: Comment
public async Task<ActionResult> Index()
{
var comments = db.Comments.Include(k => k.Item);
return View(await comments.ToListAsync());
}
// GET
public PartialViewResult _AddCommentForItem()
{
ViewBag.ItemId = new SelectList(db.Items, "Id", "Name");
return PartialView("_AddCommentForItem");
}
// POST
[HttpPost]
public PartialViewResult _AddCommentForItem ([Bind(Include = "Id,ItemId,CommentContent")] Comment comment)
{
if (ModelState.IsValid)
{
db.Comments.Add(commment);
db.SaveChanges();
}
ViewBag.ItemId = new SelectList(db.Items, "Id", "Name", comment.ItemId);
return PartialView("_AddCommentForItem");
}
}
}
我在Comment控制器的索引视图中包含了部分视图_AddCommentForItem,它正在创建注释。这种方式我想让结果立即可见,而不需要刷新。
我错过了什么? 谢谢。