asp.net-mvc – ASP.NET MVC 2中的空查询字符串参数的模型绑定
现在,行为
described here现在是ASP.NET MVC 2的默认值(至少对于预览1)。
当模型绑定一个querystring这样: ?Foo=&Bar=cat 发生以下绑定(假设您绑定到具有’Foo’和’Bar’字符串属性的模型) ASP.NET MVC 1 model.Foo = ""; model.Bar = "cat": ASP.NET MVC 2(预览1到RC) model.Foo = null; model.Bar = "cat": 想要给任何正在玩V2的人一个头脑,因为在’gu-notes‘没有提到。如果知道的任何人可以评论这是否是最终的实现还是可配置的功能,那么也好奇?我很好,但只是希望他们不要重新回到旧的方式!可配置会更好。 编辑:从这一点学习的教训是您正在开发的任何版本,而不是编写Foo.Length == 0的代码来测试一个空字符串或Foo.Length> 3检查最小长度。使用string.IsNullOrEmpty(Foo)和/或首先检查null。 更新:这个问题引发了我对他们为什么实际做出这个改变的好奇心。我认为我在研究残疾人控制时绊倒了答案。 W3 HTML规范定义了“successful control”,如下所示:
换句话说,一个成功的控制是将它作为一个查询字符串参数返回到服务器。现在,如果控件没有有效的值,那么根据规范:
(在这里用’不需要…’)发现’开放解释’语言 所以我想通过发送一个null而不是一个空字符串来减少浏览器不兼容的地方,某些浏览器可能会发送Foo =& Bar =,而其他人甚至可能不会发送该查询字符串参数。通过总是解释Foo =好像Foo不是在所有的力量你更防守。 我认为至少在正确的轨道上,为什么在这里 – 至少在一定程度上与“成功的控制”的概念有关。 http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2 解决方法
Null更具代表性,实际上它是与其他可空类型兼容的,除了字符串,所以我想象的是设计。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Json.Net IsoDateTimeConverter无效
- asp.net-mvc-3 – MVC3 – 如何在最后插入一个带有换行符的
- asp.net – 在代码中设置PageSize时,DataPager停止工作
- ASP.NET MVC 3使用子集合进行不显眼的jQuery客户端验证
- MVC3中的IValidatableObject – 客户端验证
- asp.net – 如何指向每晚软件包源的早期版本? (AspNet Cor
- 如何在ASP.NET和C#中加载下拉列表?
- asp.net-mvc – MVC4捆绑通配符 – *与{version}
- asp.net – 来自.ascx的动态加载ListView模板
- asp.net-mvc – 什么时候创建ApiController实例?
- asp.net – 如何在gridview中的Hyperlink列中显示
- Asp.net Webservice – 使用jquery AJAX安全地调
- asp.net – 如何在使用SqlDataReader时获取存储过
- asp.net-mvc-4 – 在ASP.NET MVC4 WebAPI中实现E
- 获取当前ASP.NET Web Api 2操作的URL
- 一键将Web应用发布到云-Azure Web App
- MVC 3验证 – 仅在失去焦点或提交后显示错误消息
- asp.net-mvc – 如何为MVC创建自定义验证属性
- asp.net-mvc – 为什么不能通过HtmlHelper呈现所
- asp.net – 如何在aspx页面中添加Paypal购买按钮