gpt4 book ai didi

c# - JSON 作为 null 传递给方法参数

转载 作者:行者123 更新时间:2023-12-02 16:58:14 25 4
gpt4 key购买 nike

我终于尝试使用 KnockoutJS。我探索了将 JSON 数据发送到 MVC 4 中的 C# 方法的更短方法,但最终使用了 AJAX 方法。我对以下内容有些困惑,希望有人能提供帮助。

Javascript

var VM = function () {
var self = this;
self.ValidateAndCreate = function () {
console.log("entered");
var a = {
b: "1",
c: "2",
d: {
e: "3"
}
};
var input = { data: a }
console.log(JSON.stringify(input));
$.ajax({
url: '/McAfee/ValidateAndCreatePartner',
data: JSON.stringify(input),
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (result) {
console.log('success');
}
});
}
}
var viewModel = new VM();
ko.applyBindings(viewModel);

C#

    [HttpPost]
public void ValidateAndCreatePartner(string data)
{
var x = JsonConvert.DeserializeObject(data);
RedirectIfSuccess();
}

当前发生的情况是 ValidateAndCreatePartner 触发,但参数 data 为 null,随后 NewtonSoft.Json.JsonConvert.DeserializeObject 失败因此。我该如何解决这个问题?

最佳答案

MVC 中最简单的方法是根据您的数据创建类:它更干净!例如,对于您的示例,您可以尝试以下操作:

[HttpPost]
public ActionResult Test(TestClass data) {
RedirectIfSuccess();
}


public class TestClass
{
public string b { get; set; }
public string c { get; set; }
public TestSubClass d { get; set; }
}

public class TestSubClass
{
public int e { get; set; }
}

关于c# - JSON 作为 null 传递给方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25991469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com