栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用JSON,jQuery将复杂对象数组发布到ASP.NET MVC Controller?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用JSON,jQuery将复杂对象数组发布到ASP.NET MVC Controller?

我找到了解决方案。我使用了Steve Gentile,jQuery和ASP.NETMVC的解决方案-将JSON发送到Action-Revisited。

我的ASP.NET MVC视图代码如下所示:

function getplaceholders() {        var placeholders = $('.ui-sortable');        var results = new Array();        placeholders.each(function() { var ph = $(this).attr('id'); var sections = $(this).find('.sort'); var section; sections.each(function(i, item) {     var sid = $(item).attr('id');     var o = { 'SectionId': sid, 'Placeholder': ph, 'Position': i };     results.push(o); });        });        var postData = { widgets: results };        var widgets = results;        $.ajax({ url: '/portal/Designer.mvc/SaveOrUpdate', type: 'POST', dataType: 'json', data: $.toJSON(widgets), contentType: 'application/json; charset=utf-8', success: function(result) {     alert(result.Result); }        });    };

并且我的控制器动作装饰有一个自定义属性

[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))]public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets

可在此处找到自定义属性的代码(该链接现在已断开)。

由于链接断开,因此这是JsonFilterAttribute的代码

public class JsonFilter : ActionFilterAttribute{    public string Param { get; set; }    public Type JsonDataType { get; set; }    public override void onActionExecuting(ActionExecutingContext filterContext)    {        if (filterContext.HttpContext.Request.ContentType.Contains("application/json"))        { string inputContent; using (var sr = new StreamReader(filterContext.HttpContext.Request.InputStream)) {     inputContent = sr.ReadToEnd(); } var result = JsonConvert.DeserializeObject(inputContent, JsonDataType); filterContext.ActionParameters[Param] = result;        }    }}

JsonConvert.DeserializeObject来自Json.NET



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/416020.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号