我将json数据传递给简单控制器(MVC控制器)的动作方法。以下是供参考的示例代码。

JS代码:

VAR JSON = {IsInit:真,SearchParam:{类型: “XX”,名称: “XX”,排序: “”}};

Nx$(document).ready(function() {

Nx$.ajax({

async: true,

contentType: "application/json; charset=utf-8",

type: "POST",

url: "Home/Data",

dataType: "json",

data: JSON.stringify(json),

success: function (msg) {

alert('success');

},

error: function (jqxhr, textStatus, error) {

alert('fail');

}

});

操作方法:现在

Function GetData(ByVal IsInit As Boolean, ByVal SearchParam As Newtonsoft.Json.Linq.JObject) As ActionResult

Return Nothing

End Function

,以上动作完全不来电。但是如果你使用下面的代码,那么它会调用,但SearchParam只是[object]类型,你不能使用任何searchParam对象的值。

Public Function GetData(ByVal IsInit As Boolean, ByVal SearchParam As Object) As Object

Return Nothing

End Function

我认为它不能在POST请求中传递多个参数与复杂的json对象。

如何获取传递给MVC控制器的操作方法的JSON数据,以便SearchParam Json数据转换为JObject它自己。即应该使用初始的第一个Action方法签名,而不使用任何主要的方法签名更改。

很少观察:

如果我接通上述操作方法作为API控制器API;它开始工作,但说你需要按照下面的方法签名。下面的方法不适用于MVC控制器。不知道为什么?但是,由于某种原因,我不能使用API​​控制器。

Function GetData(ByVal req As Newtonsoft.Json.Linq.JObject) As ActionResult

Return Nothing

End Function

谢谢!

+0

数据:JSON.stringify(json),正在将数据转换为字符串。我建议你删除dataType:“json”,在阿贾克斯params –

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐