在jquery post之后从控制器返回视图

时间:2014-07-11 20:32:45

标签: javascript jquery asp.net-mvc asp.net-mvc-4 knockout.js

您好我是MVC的新手,我有以下的Senario

查看:

step3.cshtml是我的观点

这个数据绑定到step3.js(使用knockout)

 $.post("/Step/Step4", { "some":some_data }, function (data) {


            }, 'JSON');

控制器:

     [HttpPost]
        public ActionResult Step4(model foo)
        {
            //save this data to the database and return a view 
            using (DBContext dbContext = new DBContext())
            {
                dbContext.Table.Add(foo);
                dbContext.SaveChanges();

            }
            return View(foo);

        }

        public ActionResult Step4()
        {
            //get this view with the model

        }

我能够看到视图Step4.cshtml能够从模型获取属性值但是。 我看到我的View Step4.cshtml是帖子的响应标题,如何在浏览器中呈现它。

这是正确的做法吗?

HTML表单帖子是否可以返回视图并替换整个内容,除了部分视图更新外,AJAX不能这样做?

1 个答案:

答案 0 :(得分:0)

当你调用$ .post时,你正在使用POST方法发出jQuery ajax请求。该数据将在成功方法中返回给您。如果要返回视图,则必须手动将文档中的html替换为该响应。

通常,当您使用这样的ajax时,您将返回一个PartialView来更新页面的一部分,而不是整个页面。您可能想看看是否可以返回部分并更新div。

您也可以使用Ajax.ActionLink执行此操作,并在AjaxOptions中指定返回响应时要更新的元素的ID,以及InsertionMode,应将其设置为Replace。而且您不必担心自己更换内容。

请参阅此stackoverflow问题,这可能会对您有所帮助:How To Use Ajax.ActionLink