【问题标题】:Passing Model to Controller将模型传递给控制器
【发布时间】:2015-02-25 08:32:15
【问题描述】:

以下是我的相关代码。我在控制器操作中将所有值都设为 null。

如何将模型传递给控制器​​?

var Settings = [];
Settings.push({
    Server: Server,
    Name: Name,
    Email: Email                    
});

Settings = JSON.stringify({ 'Settings ': Settings });

jq.ajax({
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    type: 'POST',
    url: '/Site/insertSettings',
    data: Settings ,
    success: function () {
        ....
    }
});

控制器

[HttpPost]
public JsonResult insertSettings(Settings model)
{
    ....
}

【问题讨论】:

  • 使用 var Settings ={ Server: Server, Name: Name, mail: Email }
  • 还有 data : JSON.stringify(Settings) for data 参数
  • 您创建了一个对象数组,但您的方法只需要一个对象。它应该只是 data: { Server: Server, Name: Name, Email: Email },(假设这些是 Settings 的 3 个属性)
  • 我会删除'Settings ' 中的尾随空格。这当然不是问题的根源(参见之前的 cmets),但我敢打赌它在某些情况下可能会失败。
  • 为了清楚起见,您能否在您的 MVC 代码中显示 Settings 类的代码?查看该类中的属性很有用,以防在将数据传递给控制器​​时出现进一步的问题。

标签: c# jquery json asp.net-mvc asp.net-mvc-4


【解决方案1】:

我相信您还需要指定控制器期望的正确参数名称。

试着改成这个:

var settings = {Server:Server, Name:Name,Email:Email};
var jsonDataToSend = JSON.stringify({ 'model': settings });

其中将包含模型参数:

{"model":{"Server":"Server","Name":"Name","Email":"Email"}}

然后:

data: jsonDataToSend,

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 1970-01-01
    • 2019-10-18
    • 2013-06-03
    • 1970-01-01
    • 2023-04-10
    • 2020-01-09
    • 2017-05-08
    • 1970-01-01
    相关资源
    最近更新 更多