Javascript AJAX不更新局部视图

Javascript AJAX不更新局部视图,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,我目前很难使用Ajax更新部分视图,而不必刷新整个页面。我正在使用MVC和实体框架构建视图 我将尽可能多地介绍自己: 我有一个div,它将用来保存我所有评论的列表视图 <div id="ContainAnnouncementComments"> </div> 然后,我有第二个div容器,用于保存一个文本框,供用户输入一些“应该”的信息,然后使用Ajax replace调用更新ContainAnnouncementComments: <div id="Contain

我目前很难使用Ajax更新部分视图,而不必刷新整个页面。我正在使用MVC和实体框架构建视图

我将尽可能多地介绍自己:

我有一个div,它将用来保存我所有评论的列表视图

<div id="ContainAnnouncementComments"> </div>
然后,我有第二个div容器,用于保存一个文本框,供用户输入一些“应该”的信息,然后使用Ajax replace调用更新
ContainAnnouncementComments

<div id="ContainAnnouncementCommentCreate">

        @using (Ajax.BeginForm("AJAXCreate", "Comments", new { announcementId = Model.AnnouncementId }, new AjaxOptions
        {
            InsertionMode = InsertionMode.Replace,
            HttpMethod = "POST",
            UpdateTargetId = "ContainAnnouncementComments"
        }))

        {
            <div class="form-group">
                @Html.AntiForgeryToken()

                <div class="col-md-10">
                    @Html.EditorFor(model => model.Message, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Message, "", new { @class = "text-danger" })
                </div>
            </div>
        }

    </div>
从这里开始,当运行时,我尝试创建一个新的注释,但是当提交时,显示的不是正在更新的partialView,而是partialView


不确定我是否正确解释了这一点,所以如果我遗漏了任何信息,请让我知道,我会相应地更新

盯着我的代码看了3个小时后,我意识到其实实现没有什么问题,唯一的问题是我没有通过NuGet manager安装AJAX


Joys.

您缺少jquery-unobtrusive-ajax.js文件,请将其包含在主布局中。我已将其包含在使用实体支架生成的.cshtml详细信息视图中。对不起,我只是没有把它包括在问题中。现在我将更新以包含所有我的。像
那样做,因为如果视图位于嵌套目录中,url可能会出错,请显示布局文件,是否还有其他依赖的js文件也作为jquery加载。unobtrusive-ajax.min.js可能已依赖于此,获得编译错误:意外字符?请参阅更新的注释,那样试试看
 public ActionResult BuildAnnouncementComment(int? AnnouncementId)
        {
            return PartialView("_AnnouncementComment", db.Comments.ToList().Where(x => x.AnnouncementId == AnnouncementId));
        }
<div id="ContainAnnouncementCommentCreate">

        @using (Ajax.BeginForm("AJAXCreate", "Comments", new { announcementId = Model.AnnouncementId }, new AjaxOptions
        {
            InsertionMode = InsertionMode.Replace,
            HttpMethod = "POST",
            UpdateTargetId = "ContainAnnouncementComments"
        }))

        {
            <div class="form-group">
                @Html.AntiForgeryToken()

                <div class="col-md-10">
                    @Html.EditorFor(model => model.Message, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Message, "", new { @class = "text-danger" })
                </div>
            </div>
        }

    </div>
 public ActionResult AJAXCreate(int announcementId, [Bind(Include = "CommentId, Message")] Comment comment)
        {
            if (ModelState.IsValid)
            {
                comment.UserId = User.Identity.GetUserId();
                comment.AnnouncementId = announcementId; 
                db.Comments.Add(comment);
                db.SaveChanges();
            }

            return PartialView("_AnnouncementComment", db.Comments.ToList()); 
        }