我有一个javascript客户端,它将json格式的数据发送到一组MVC2控制器。客户端将格式化json,并且控制器将不知道如何将json解释为任何模型。因此,我无法将Controller方法参数转换为已知的模型类型,我只想抓取通用的json并将其传递给某种类型的工厂。
我的ajax电话:
function SendObjectAsJSONToServer(object,url,idForResponseHTML) {
// Make a call to the server to process the object
var jsonifiedObject = JSON.stringify(object);
$.ajax({
url: url // set by caller
, dataType: 'json'
, data: jsonifiedObject
, type: 'GET'
, error: function(data) { alert('error in sendObjectAsJSONToServer:' + data); }
, success: function(data) {
alert(data.message); // Note that data is already parsed into an object
}
});
}
我的MVC控制器:
public ActionResult SaveForm(string obj)
{
// Ok, try saving the object
string rc = PassJSONToSomething(obj.ToString());
string message = "{\"message\":\""+rc+"\",\"foo\":\"bar\"}";
return new ContentResult { Content = message, ContentType = "application/json" };
}
问题是obj始终为null。任何人都可以告诉我应该如何构造ajax调用和控制器参数,以便让我的json到服务器?我正在使用MVC2。这似乎是一些SO问题的重复,但在我的情况下,我不知道json映射到的模型,所以我不能在控制器参数类型中使用特定的模型类型。
非常感谢。
答案 0 :(得分:0)
你有没有尝试过类似的东西?
$.ajax({
url: url // set by caller
, dataType: 'json'
, data: {obj :jsonifiedObject}
, contentType: 'application/json; charset=utf-8'
, type: 'GET'
, error: function(data) { alert('error in sendObjectAsJSONToServer:' + data); }
, success: function(data) {
alert(data.message); // Note that data is already parsed into an object
}
});