将表单作为json传递给控制器​​并解析

时间:2016-11-02 17:17:19

标签: javascript c# jquery json

我有动态生成的表单,所以我需要处理传递给控制器​​的未知数量的输入。可能没有预定义的模型(我假设)来处理这个,所以我想发送一个json字符串可能是最好的。

问题是将控制器中的json解析为JObject。

以下是我在提交ajax请求之前使用的内容。

var json = JSON.stringify($(this).serialize());

现在传递给控制器​​的字符串如下所示

"\"__RequestVerificationToken=FGhUgZXRTWcDqC-ffeMb7S2paAgFSUN4XyJl72qu85TD1GPpi69aGiyHzXBfHpb6XgBrGXAhtJz6NWka0XGK_JRSqpm-Q41tiYvJe1NO3J-_4leHroUvDp3VsWYMLFMm0&Form.ID=d7025ad7-745b-4898-ad40-350ef1d511ec&a5fbdde8-4c34-48e2-9a77-083c31eb1ae1=This+is+a+test\""

在控制器中

JObject jo = JObject.Parse(json); //error

foreach (var o in jo)
{
    string key = o.Key;
    JToken val = o.Value;
}

我得到的错误

"Error reading JObject from JsonReader. Current JsonReader item is not an object: String. Path ''

1 个答案:

答案 0 :(得分:1)

几个更好的选择:

Ajax data:有效负载就是您的$(this).serialize()