将JSON对象捕获为单个字符串

时间:2012-09-27 08:37:59

标签: jquery asp.net-mvc json

我将一个JSON对象发布到asp.net mvc控制器动作,如下所示。控制器操作自动将json变量绑定到各个对象。虽然这是一个很好的功能,但我的要求是将传入的json字符串'as-it-is'捕获到单个字符串对象中并将其存储在数据库中。我的问题是如何覆盖默认行为并以单个字符串获取传入的json对象?

查看

$.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 jsonProfile)
        {
            try
            {
                JavaScriptSerializer ser = new JavaScriptSerializer();
                return Json(jsonProfile, JsonRequestBehavior.AllowGet);

            }
            catch (Exception exc)
            {
                return Json(new { error = 1, message = exc.Message });
            }
        }

2 个答案:

答案 0 :(得分:0)

使用HttpRequest对象,有一个表单变量集合,您可以从该对象获取原始数据。

string rawdata = Request.Form["variable name"];

您必须找到变量名称。

您可以使用调试器来查看此内容。

答案 1 :(得分:0)

你可以尝试这样的事情 将您的内容转换回json

System.Web.Script.Serialization.JavaScriptSerializer oSerializer = 
     new System.Web.Script.Serialization.JavaScriptSerializer();

string sJSON = oSerializer.Serialize(oList);


[{"Name":"Pini","Age":"30","ID":"111"},
{"Name":"Yaniv","Age":"31","ID":"Cohen"},
{"Name":"Yoni","Age":"20","ID":"Biton"}]

Reference Here