【发布时间】:2014-05-25 02:06:03
【问题描述】:
我目前正在使用模型绑定和 ASP.NET MVC 3 和 .NET 4.0。
-
查看模型类:
public class BasicViewModel { [Display(Name = @"Names")] [Required(ErrorMessage = @"Names is required")] [DisplayFormat(ConvertEmptyStringToNull = true)] List<string> Names { get; set; } [Display(Name = @"Email")] [Required(ErrorMessage = @"Email is required")] string Email { get; set; } } -
控制器
[AcceptVerbs(HttpVerbs.Post)] public ActionResult NameEmail( BasicViewModel basicModel) { // some manipulation of data } -
在cshtml文件中查看(剃刀视图引擎)
// model declared here using @model BasivViewModel // only required part shown labels part of code removed @Html.TextBoxFor(model => model.Names) ... @Html.TextBoxFor(model => model.Email) ...
ASP.NET MVC 提供的模型绑定将字符串 Email 绑定为空,如果它为空,但将 List Names 绑定到空字符串 ("")。我希望它为空。我通过单击提交按钮解析表单字段的值,使用 JavaScript 完成了绑定工作。但我希望 asp.net 模型绑定能够做到这一点。此外,如果 Data Annotations 类中有一些字段,例如此功能所需的字段,那就太好了。我试过这个Null Display Text Property 并参考备注部分。是否有解决方案或者这是如何实施的?我不确定我是否正确理解了模型绑定的这一部分。
【问题讨论】:
-
@vishalsharma 我可以知道上面的链接是如何解决问题的吗?我知道如何建模绑定到列表。如果您能就链接如何解决问题提供一些解释,那就太好了。
-
hanselman.com/blog/… 阅读此内容.. 如果您不明白,请告诉我,我一定会提供帮助
-
文章中的 @vishalsharma 很明显,列表的索引需要是连续的。但我想我错过了那篇文章和列表名称如何绑定到空字符串而不是 null 之间的链接,而字符串电子邮件中的情况并非如此。
-
你能告诉我在发布期间 request.form 中有哪些可用的值吗..