jquery - 如何在 ASP.NET MVC3 中简单地将序列化表单作为 AJAX 表单中的数据输出

标签 jquery asp.net-mvc-3

免责声明:对于 ASP.NET,我完全是菜鸟。

我使用以下 jQuery 代码来提交我的表单:

            $.ajax({
                url: '/Foo/Save',
                type: 'POST',
                data: $('#dataInputForm').serialize(),
                contentType: 'application/json; charset=utf-8',
                success: function (data) {
                    alert(data.success);
                },
                error: function () {
                    alert("error");
                }
            });

我的 Foo Controller 代码是这样的:

    [HttpPost]
    public ActionResult Save()
    {
        return Json(new { success = true });
    }

我知道 AJAX 帖子正在运行,因为我看到了“成功”的警报。接下来,我想以某种方式查看我的序列化形式的 var 转储。老实说,我不知道在 Controller 端从哪里开始,但我希望我的成功警报只是转储我的序列化表单数据,以便我可以确认已提交的表单数据。

本质上,这就是我希望成功警报的样子:

a=1&b=2&c=3&d=4&e=5

奖励:我希望看到一种以 JSON 格式提交数据并以 JSON 格式查看成功警报的替代方法。

最佳答案

首先,.serialize() 不会生成 json,因此指定的 contentType 是错误的。您可以删除 contentType 选项,$.ajax() 将使用默认的“application/x-www-form-urlencoded”。

接下来,在 Controller 上,您需要将发布的数据绑定(bind)到某个对象。如果您没有定义对表单数据进行建模的对象,则可以使用 FormCollection 来构建结果:

[HttpPost]
public ActionResult Save(FormCollection collection)
{
    var result = new {Foo1 = collection["Foo1"], Foo2 = collection["Foo2"]};

    return Json(result);
}

在成功处理程序中,您可以显示属性:

success: function(data) {
    alert(data.Foo1);
    alert(data.Foo2);
}

或者使用 this 将对象转换为 json 字符串像这样的实用程序:

success: function(data) {
    alert(JSON.stringify(data));
}

进一步引用:

convert json object to string

关于jquery - 如何在 ASP.NET MVC3 中简单地将序列化表单作为 AJAX 表单中的数据输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7492748/

相关文章:

javascript - jQuery 将事件处理程序连接到被触发的对象的方法

javascript - 如何隐藏 HTML 文本直到被点击

asp.net - 如何在mvc3中对来自@Html.LabelFor()的内容进行本地化

c# - 如果使用 Razor MVC3 在 div 标记内声明

asp.net-mvc-3 - System.Web.Mvc.HtmlHelper'不包含 'ActionLink'的定义

javascript - 当我在 jsp 和 css 文件中复制我的 html 文件时,我的页面设计发生了变化

javascript - jQuery 用户界面 : smooth slider with one snap (to default value)?

javascript - jQuery 不接受编程 element.onchange() 调用

asp.net-mvc-3 - MVC3 部分 View OutputCache 被父 View 覆盖

asp.net-mvc - ASP.NET MVC 3 url 路由