Csharp/C#教程:将JSON发布到MVC控制器 – String参数为null分享


将JSON发布到MVC控制器 – String参数为null

我故意不在控制器参数中使用绑定,所以我有一个看起来像这样的控制器:

[HttpPost] public ActionResult UntypedForm(String serializedformdata) { //// ... } 

当我使用以下代码将序列化的JSON表单元素发布到控制器时:

 var formelements = $('#form').serializeArray(); $.post(url, formelements, function (data) { }, "json").error(function () { alert("Error posting to " + url); }); 

我在控制器上获得String serializedformdata的NULL值。 但是,当我用强类型对象替换String serializedformdata时,绑定按预期正常工作。

我的控制器的重点是通用的JSONpost,我将创建一个BSON文档放入Mongo数据库。 所以….我故意不想要模型绑定,我希望序列化的字符串作为pamameter。 我发布时为什么我的serializedformdata字符串为null?

注意 – 我也尝试用Dictionary绑定到Dictionary

 public ActionResult UntypedForm(Dictionary serializedformdata) { //// ... } 

但是serializedformdata仍为null。

函数serializeArray使用表单的键/值对创建一个Javascript对象。 你不希望这样,你想要一个带有serializedformdata =(JSON字符串)的单个键/值。 就是这样;

 var formelements = { serializedformdata: JSON.stringify($('#form').serializeArray()) }; 

这会将原始JSON字符串传递给控制器​​的参数。 您可以使用JavaScriptSerializer来获取服务器上的对象:

上述就是C#学习教程:将JSON发布到MVC控制器 – String参数为null分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 var obj = (List>)new JavaScriptSerializer().Deserialize(serializedformdata, typeof(List>)); Dictionary dict = obj.First(); string someval = dict["somekey"]; 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1021665.html

(0)
上一篇 2022年1月6日
下一篇 2022年1月6日

精彩推荐