jquery - ASP.NET MVC 3 - 通过 ajax 将额外参数与模型一起传递给操作不起作用

标签 jquery ajax asp.net-mvc-3

为什么在这种情况下,当到达操作时 id 为 null?

Javascript

$("#ajax-submit").click(function () {
    var data = { setup: $("form").serialize(), id: "12345" };
    $.ajax({
        type: 'POST',
        url: "/MyController/Process",
        data: JSON.stringify(data),
        success: function () { alert("Successful"); },
        dataType: "json"
    });
});

行动

[HttpPost]
public ActionResult Process(SetupModel setup, string id)
{
    // id is null, setup is not!
}

如果我将 JavaScript 更改为:

$.ajax({
    type: 'POST',
    url: "/MyController/Process",
    data: { setup: $("form").serialize(), id: "12345" },
    success: function () { alert("Successful"); },
    dataType: "json"
});

然后 id 绑定(bind),但 setup 没有绑定(bind)!

目标

我正在尝试开发一个分步向导,整个模型在单个 View 中呈现,并使用 JavaScript 显示/隐藏 div 来模拟进入下一页/上一页。

但是,我遇到的问题是,其中一个步骤需要建立一个列表(无需提交整个模型)。为了实现此目的,我尝试按当时的情况提交数据(使用额外的参数),更新 Controller 中的模型,然后使用更新后的模型重新加载 View 。

最佳答案

对代码进行微小更改。

$.ajax({
    type: 'POST',
    url: "/MyController/Process",
    data: $("form").serialize() + '&id=12345',
    success: function() {
        alert("Successful");
    },
    dataType: "json"
});

这将解决问题

关于jquery - ASP.NET MVC 3 - 通过 ajax 将额外参数与模型一起传递给操作不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651057/

相关文章:

javascript - 动画背景图像向左滑动的最简单方法?

javascript - 函数在我第二次调用它时失败

php - PHP 和 JS 之间的数据通信

javascript - 如何在javascript中获取带有两个参数的URL?

regex - DataAnnotation TextArea 多封电子邮件

ruby-on-rails-3 - 什么是最优雅的表 Accordion /"show more >>"解决方案?

javascript - 我需要相当于 .load() 的 JS

javascript - 是否有任何替代的 javascript 函数可用于 jQuery 中的可拖动包含?

asp.net-mvc - 将 ASP.NET MVC2 项目升级到 MVC3 并使用混合 View 引擎

asp.net-mvc-3 - 您可以在 ASP.net MVC3 中使用嵌套 View 模型吗?