Как обработать проверку модели, когда связанная модель редактирования! = Просмотр модели - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть ситуация в ASP.NET MVC 2, где у меня есть форма, поля которой основаны на информации, предоставляемой моделью представления, но опубликованные данные которой являются подмножеством этих данных, представленных более тонкой моделью редактирования.Я хотел бы добавить простую проверку аннотации данных в модель редактирования, но поскольку представление основано на модели представления, я не уверен, как действовать дальше.

1 Ответ

1 голос
/ 15 апреля 2011

Просмотр параметров модели и действия контроллера не должен совпадать.

В вашем случае это означает, что вы можете использовать более богатый класс модели для генерации своего представления (и, возможно, даже разместить больше информации, чем необходимо), но ваше действие контроллера будет использовать только некоторую информацию из этих опубликованных данных для заполнения более простой модели приложения. экземпляр объекта. Нет проблем. Пока наименования полей будет достаточно для правильного заполнения свойств.

У вас могут быть следующие два класса:

public class User
{
    [Required]
    public string Username { get; set; }

    [Required]
    public string Password { get; set; }
}

public class Person: User
{
    public string Name { get; set; }

    public string Address { get; set; }
}

и тогда ваше представление будет использовать Person, а действие вашего контроллера будет иметь параметр типа User. Хорошо. Это будет работать.

Нет необходимости, чтобы эти классы наследовали друг друга. Я только что сделал это в этом простом примере, потому что таким образом они оба имеют общие имена свойств. Но в противном случае они не должны быть связаны каким-либо образом с какой-либо формой или формой, если опубликованные имена полей смогут связывать модель со свойствами класса параметров действия контроллера.

...