【发布时间】:2012-09-18 20:54:18
【问题描述】:
我正在向 asp.net MVC 发布一个 JSON 字符串,如下所示。
AJAX 调用
$.ajax({
type: "POST",
url: "@(storeLocation)IDR/OpcInsertCustomerProfile/",
data: JSON.stringify(currSelection),
contentType: "application/json",
success: function(data) {
alert('success : ' + JSON.stringify(data));
},
error: function(data) {
alert('Error : ' + JSON.stringify(data));
}
}
);
在控制器中:
[HttpPost]
[ActionName("OpcInsertCustomerProfile")]
public JsonResult OpcInsertCustomerProfile(string currSelectionData)
{
try
{
JavaScriptSerializer ser = new JavaScriptSerializer();
var res = ser.Serialize(currSelectionData);
return Json(currSelectionData, JsonRequestBehavior.AllowGet);
}
catch (Exception exc)
{
return Json(new { error = 1, message = exc.Message });
}
}
调试器表示动作被成功调用,但是接收到的传入字符串参数始终为空。 Firebug 'post' 显示传出参数是正确的 json 对象。我期待看到 JSON 字符串作为传入参数。请注意,我不想将其反序列化为适当的对象。我要做的就是将字符串以 JSON 格式“原样”存储在数据库中。稍后需要将其检索并按原样传递给 Javascript。
【问题讨论】:
-
好吧,看起来 asp.net MVC 自动将传入的 JSON 对象映射到单个对象。这很有趣,但我需要将整个 json 对象捕获为 SINGLE STANDALONE STRING。我该怎么做?
标签: javascript asp.net json asp.net-mvc-3