2012-06-14 54 views
1

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

视图中电子邮件[]字段的表示基本上是重复文本输入 (用户可以单击按钮添加新字段)。对于现有的电子邮件(更新视图),它需要传递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; 
} 
+0

我想这感觉不对,因为你错过了声明性验证?想知道你将不得不编写自己的验证属性。 – bluevector

+0

在我工作的唯一MVC3项目上,我们在每个端点都有一组自定义验证器,除了UI端发生的任何事情外,所有参数都由其相应的验证器进行验证。 – evanmcdonnal

+0

@jonnyGold - “犯规觉得不对劲”,在我做验证,手动,而不是写出的投入和args的传递给控制器​​的方法利用该框架的功能 –

回答

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

+1

无论这些文章的谈论验证。尽管如此[This one](http://blog.stevensanderson.com/2010/01/28/validating-a-variable-length-list-aspnet-mvc-2-style/)。 – bluevector

相关问题