asp.net – 如何接收JSON作为MVC 5操作方法参数
发布时间:2020-07-24 11:22:23 所属栏目:asp.Net 来源:互联网
导读:我一直在试图整个下午爬行通过网络试图接收一个JSON对象在动作控制器。 什么是正确的或更容易的方式去做? 我试过以下: 1: //Post/ Roles/AddUser [HttpPost] public ActionResult AddUser(String model) { if(model != null) {
我一直在试图整个下午爬行通过网络试图接收一个JSON对象在动作控制器。 什么是正确的或更容易的方式去做? 我试过以下: //Post/ Roles/AddUser [HttpPost] public ActionResult AddUser(String model) { if(model != null) { return Json("Success"); }else { return Json("An Error Has occoured"); } } 这给了我一个null值我的输入。 2: //Post/ Roles/AddUser [HttpPost] public ActionResult AddUser(IDictionary<string,object> model) { if(model != null) { return Json("Success"); }else { return Json("An Error Has occoured"); } } 这给我一个500错误在jquery一边是试图发布到它? (意味着它没有正确地绑定)。 这里是我的jQuery代码: <script> function submitForm() { var usersRoles = new Array; jQuery("#dualSelectRoles2 option").each(function () { usersRoles.push(jQuery(this).val()); }); console.log(usersRoles); jQuery.ajax({ type: "POST",url: "@Url.Action("AddUser")",contentType: "application/json; charset=utf-8",dataType: "json",data: JSON.stringify(usersRoles),success: function (data) { alert(data); },failure: function (errMsg) { alert(errMsg); } }); } 所有我想做的是在我的mvc操作中接收我的JSON对象? 解决方法不幸的是,字典总是在MVC中的模型绑定的问题。 Read the full story here.因此,我们必须创建我们自己的自定义模型绑定器,以获取Dictionary作为我们的控制器操作的参数。为了解决你的要求,这里是工作的解决方案 – 首先按照以下方式创建ViewModel。 PersonModel可以有RoleModel列表。 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),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"); } } 所以现在当post发生时,你可以获取所有发布的数据在action的action参数。 (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 从app_data中删除文件夹时如何防止asp.net重新编译?
- asp.net-mvc – 无法在Web服务器上启动调试. Web服务器找不
- vs2008中文版提供下载(包含中文msdn),包括vs2008序列号和破
- ASP.NET VNext类库System.Runtime.Serialization
- ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)
- asp.net – Javascript日期本地化
- asp.net-mvc – 如何在ASP.NET MVC部分视图中使用匿名列表作
- 如何在asp.net中更改javascript警告框的标题?
- asp.net – 如何使用JwtSecurityTokenHandler和JWKS端点验证
- asp.net-mvc – 在ASP.NET MVC 2中模板化Html.DisplayFor()
推荐文章
站长推荐
- asp.net-mvc – Bug? ASP.NET MVC 2中的客户端验
- asp.net-mvc – ASP.NET MVC会话超时,绝对还是滑
- VS 2015 CTP 6 Nuget Package Source
- asp.net-core – 如何在Visual Studio 2015 RC中
- asp.net – 增加IIS7 / Win7 Pro上的最大上传文件
- asp.net – Tridion分析和个性化错误:用户不能为
- asp.net – 如何在gridview中将navigateurl添加到
- asp.net-mvc – 在我的ASP.NET MVC网站中缓存不能
- asp.net通过Ajax UpdatePanel回传后滚动条位置变
- .Net 更容易的使用配置文件 SuperConfig
热点阅读