2012-06-14 3 views
1

Как вы обрабатываете представления, которые строго типизируются для моделей с повторяющимися полями в MVC3? Я хотел бы использовать стандартные методы проверки MVC3 и использовать методы хелпера HTML для генерации входных данных, но мне пришлось откидываться назад, кодируя входы в HTML и используя FormCollection для параметров в методе контроллера.MVC3 Модели с повторяющимися полями

Представление поля электронной почты [] в представлении - это в основном повторяющийся ввод текста (пользователь может нажать кнопку, чтобы добавить новое поле). Для существующих писем (просмотр обновления) необходимо передать идентификатор и строку адреса. У меня это работает, но это не совсем правильно.

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, над которым я работал, у нас есть коллекция настраиваемых валидаторов в каждой конечной точке, и все параметры проверяются там с помощью соответствующего валидатора в дополнение к тому, что происходит на конце пользовательского интерфейса. – evanmcdonnal

+0

@jonnyGold - «does not feel right» в том, что я делаю валидацию, записывая входные данные и передавая аргументы методу контроллера вручную, а не используя функции рамки –

ответ

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

Смежные вопросы