asp.net-mvc – ASP.NET MVC 4 – ModelBinder错误
发布时间:2020-12-16 06:32:13 所属栏目:asp.Net 来源:网络整理
导读:所以我正在玩我的ASP.NET MVC 4解决方案.每件事情都很好,不停地添加东西,但奇怪的事情开始发生. 我的一个Models属性为null,即使我将Json中的项目传递给它. 这是javascript对象/ json传递它: var obj = { "plc": "False","al": ["386","710"],"pl": ["9530",
所以我正在玩我的ASP.NET MVC 4解决方案.每件事情都很好,不停地添加东西,但奇怪的事情开始发生.
我的一个Models属性为null,即使我将Json中的项目传递给它. 这是javascript对象/ json传递它: var obj = { "plc": "False","al": ["386","710"],"pl": ["9530","211","783"] }; 我正在使用自定义模型绑定器…认为这可能是问题所以我把它关掉了. 尝试使用.NET中的JavaScriptSerializer来查看它是否有效: var reader = new StreamReader(Request.InputStream); Request.InputStream.Position = 0; var readToEnd = reader.ReadToEnd(); var javaScript = new JavaScriptSerializer(); var searchFarmOptions = javaScript.Deserialize<Test>(readToEnd); 得到了所有的属性…… WOOT. 所以我尝试了一个干净的ASP.NET MVC 4解决方案.重现这个bug. 这是来自Index.cshtml视图 @{ ViewBag.Title = "title"; } <h1>Title</h1> Testing ... <script src="/Scripts/jquery-1.8.2.min.js" type="text/javascript"></script> <script> $(function() { var obj = { "1pllort": "False","1plc": "true","783"] }; var options = { "contentType": "application/json; charset=UTF-8","type": "POST","data" : JSON.stringify(obj) }; $.ajax("/Home/TestPost",options).done(function(data) { console.log(data); }); }); </script> 这是我的HomeController using System.Collections.Generic; using System.Web.Mvc; namespace MvcApplication3.Controllers { public class HomeController : Controller { public ActionResult Index() { return View("Index"); } [HttpPost] public ActionResult TestPost(Test model) { return Json(model); } } public class Test { public List<int> PL { get; set; } public List<int> AL { get; set; } public bool PLC { get; set; } public bool ALC { get; set; } } } 是的,这个bug仍然存在. 每当我有一个以“pl”开头的属性作为我的列表名称时,“pl”列表为空. 此外,它可以是以“pl”开头的任何名称……如“plchecked” 如果我将“plc”重命名为“cpl”它的工作原理. 那么这里发生了什么……模型绑定器中是否有任何命名限制?我在这里错过了什么? 更新1 工作 PL服务器端现在具有正确的值等,而不是null,而是数字列表. var obj = { "pl": ["9530","783"],"1plc": "false","pl-some-odd-value": "false","alc": "false" }; 不要工作 PL服务器端现在具有空值. var obj = { "pl": ["9530","alc": "false","pl-odd-value": "false" }; 工作 PL有json对象字符串的3个值… var obj = { "pl": ["9530","odd-value-pl": "false" }; 解决方法
安装
ImranB.ModelBindingFix nuget package.我认为你正在遇到我在
this blog post年讨论过的一个错误.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – 如何使WebSecurity.Login使用用户名或电子
- asp.net – IFrame:此内容无法显示在一个框架中
- asp.net – Visual Studio 2010中的HTML格式
- asp.net – 发布配置文件不会发布所需的构建配置(.pubxml.u
- asp.net-mvc-3 – 跨多个控制器操作保持值
- asp.net – 正则表达式匹配10-14位数
- ASP.NET C#使用列表导航如何在活动导航页面上设置id =“cur
- asp.net-mvc – PRG模式是否与AJAX表单帖子不兼容?
- datetime – 日期格式dd / MM / yyyy在asp.net mvc 5中不起
- entity-framework – ASP.NET-Identity限制UserName长度
推荐文章
站长推荐
- 在ASP.NET中模拟成员资格用户
- ASP.NET Webforms的MVVM模式?
- asp.net-mvc – 单元测试ASP.NET MVC中的自定义模
- 当会话状态超时在asp.net mvc中完成时,如何重定向
- asp.net – Page_Init vs OnInit
- asp.net-mvc – ASP.NET MVC 3 – 你想看什么功能
- asp.net-mvc – ASP.NET MVC:路由中的命名空间
- asp.net-mvc-4 – 如何配置MVC的样式捆绑顺序?
- asp.net-mvc – 如何在MVC中使用HtmlHelper获取自
- asp.net-mvc – 如何让JsonResult返回一个数组数
热点阅读