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

如何将JSON作为MVC 5操作方法参数接收

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

如何将JSON作为MVC 5操作方法参数接收

不幸的是,Dictionary在MVC中存在模型绑定问题。在这里阅读全文。而是创建一个自定义模型联编程序,以将Dictionary作为控制器操作的参数。

为了满足您的要求,这是可行的解决方案-

首先按照以下方式创建ViewModels。PersonModel可以具有RoleModels的列表。

public class PersonModel{    public List<RoleModel> Roles { get; set; }    public string Name { get; set; }}public class RoleModel{    public string RoleName { get; set;}    public string Description { get; set;}}

然后执行一个索引操作,该操作将提供基本的索引视图-

public ActionResult Index(){    return View();}

索引视图将具有以下JQuery AJAX POST操作-

<script src="~/scripts/jquery-1.10.2.min.js"></script><script>    $(function () {        $('#click1').click(function (e) { var jsonObject = {     "Name" : "Rami",     "Roles": [{ "RoleName": "Admin", "Description" : "Admin Role"}, { "RoleName": "User", "Description" : "User Role"}] }; $.ajax({     url: "@Url.Action("AddUser")",     type: "POST",     data: JSON.stringify(jsonObject),     contentType: "application/json; charset=utf-8",     dataType: "json",     error: function (response) {         alert(response.responseText); },     success: function (response) {         alert(response);     } });        });    });</script><input type="button" value="click1" id="click1" />

将操作帖子索引到AddUser操作-

[HttpPost]public ActionResult AddUser(PersonModel model){    if (model != null)    {        return Json("Success");    }    else    {        return Json("An Error Has occoured");    }}

因此,现在发布时,您可以在action的模型参数中获取所有发布的数据。

更新:

对于asp.net核心,要获取JSON数据作为操作参数,应

[FromBody]

在控制器操作中的参数名称之前添加属性。注意:如果您使用的是ASP.NET Core
2.1,则还可以使用该
[ApiController]
属性来自动推断复杂操作方法参数的[FromBody]绑定源。(文档)



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

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

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