【问题标题】:MVC3 Models with repeating fields具有重复字段的 MVC3 模型
【发布时间】:2012-06-14 20:55:06
【问题描述】:

如何处理在 MVC3 中具有重复字段的模型的强类型视图?我想使用标准的 MVC3 验证方法并使用 HTML 辅助方法来生成输入,但不得不依靠在 HTML 中手动编码输入并在控制器方法中使用 FormCollection 作为参数。

email[] 字段在视图中的表示基本上是一个重复的文本输入 (用户可以单击按钮添加新字段)。对于现有的电子邮件(更新视图),它需要传递 id 和地址字符串。我有这个工作,但感觉完全不对。

public class Email
{
    public int EmailId
    public string EmailAddress
}

public class Person
{
    public int PersonId;
    [Required(ErrorMessage = "First name is required")]
    public string FirstName;
    [Required(ErrorMessage = "Last name is required")]
    public string LastName;

    // how to handle this?
    public Email[] EmailAddresses;
}

【问题讨论】:

  • 我认为它感觉不对,因为您缺少声明性验证?我认为您将不得不编写自己的验证属性。
  • 在我参与过的唯一 MVC3 项目中,我们在每个端点都有一组自定义验证器,除了 UI 端发生的任何事情之外,所有参数都由相应的验证器验证。
  • @jonnyGold - “感觉不对”,因为我正在做验证、写出输入并将 args 手动传递给控制器​​方法,而不是利用框架的功能

标签: c# asp.net asp.net-mvc-3


【解决方案1】:

这可能是一篇非常长的文章,如何实现这一点。但是有几个博客讨论了如何做到这一点:

http://blog.codeville.net/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/

http://zahidadeel.blogspot.com/2011/05/master-detail-form-in-aspnet-mvc-3-i.html

HTH

【讨论】:

  • 这两篇文章都没有谈到验证。 This one 确实如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
  • 2017-05-07
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多