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

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

1 ответ

Решение

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

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

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

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, Хорошо. Это будет работать.

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

Другие вопросы по тегам