【问题标题】:Return View from controller after jquery postjQuery发布后从控制器返回视图
【发布时间】:2014-07-11 20:32:45
【问题描述】:

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

查看:

step3.cshtml 是我的看法

这有数据绑定到 step3.js(使用敲除)

 $.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 不能做到这一点,除了部分视图更新?

【问题讨论】:

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


    【解决方案1】:

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

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

    您也可以通过使用 Ajax.ActionLink 来做到这一点,并在 AjaxOptions 中指定在返回响应时要更新的元素的 id,以及应设置为 Replace 的 InsertionMode。而且您不必担心自己更换内容。

    请查看这个 stackoverflow 问题,它可能会对您有所帮助:How To Use Ajax.ActionLink

    【讨论】:

    • 那么HTML表单帖子是否可以返回视图并替换整个内容而AJAX除了部分视图更新之外不能这样做?
    • 通常开发人员使用 ajax 来更新他们页面的一部分,而不是整个页面。通过将视图返回给您的 ajax 调用,您现在拥有一个代表整个页面的 html 字符串。您必须替换页面中的所有内容。如果你返回一个部分视图,你只是得到一个 html 部分,你可以在 div 或其他东西中更新它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 2019-03-03
    • 2022-08-03
    • 2016-06-07
    • 2012-10-18
    • 2013-01-08
    • 2017-02-13
    相关资源
    最近更新 更多