首页 > 后端开发 > C++ > 如何使用 JSON 将复杂对象数组传递到 ASP.NET MVC 控制器?

如何使用 JSON 将复杂对象数组传递到 ASP.NET MVC 控制器?

Susan Sarandon
发布: 2025-01-01 02:28:09
原创
298 人浏览过

How to Pass Arrays of Complex Objects to ASP.NET MVC Controllers Using JSON?

将复杂对象数组传递到 ASP.NET MVC 控制器

在此场景中,您寻求将复杂对象数组传递给控制器动作。为此,需要执行几个步骤。

准备视图

问题中提供的代码已经准备了一个对象数组。这里的关键是将这个数组转换为控制器可以解析的 JSON 格式。为此,请使用 jQuery 库中的 $.toJSON() 函数,如解决方案改进的视图代码所示:

function getplaceholders() {
    // ...
    var postData = { widgets: results };
    $.ajax({
        // ...
        data: $.toJSON(widgets),
        // ...
    });
}
登录后复制

装饰控制器操作

为了让控制器动作接受并处理JSON数据,需要用自定义属性来修饰。在本例中,我们使用 JsonFilter 属性:

[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))]
public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)
登录后复制

Param 属性指定将接收 JSON 数据的参数名称,JsonDataType 定义反序列化所需的数据类型。

自定义属性功能

JsonFilterAttribute 实现拦截 HTTP 请求并检查是否包含 JSON 内容。如果是这样,它会使用 Json.NET 中的 JsonConvert.DeserializeObject 将 JSON 反序列化为指定的数据类型,并将其分配给相应的操作参数。

public class JsonFilter : ActionFilterAttribute
{
    // ...
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        // ...
        var result = JsonConvert.DeserializeObject(inputContent, JsonDataType);
        filterContext.ActionParameters[Param] = result;
    }
}
登录后复制

按照以下步骤,您可以成功传递复杂的数组对象从您的视图到您的 ASP.NET MVC 控制器。

以上是如何使用 JSON 将复杂对象数组传递到 ASP.NET MVC 控制器?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板