Избегайте проверки моделей классов отношений - PullRequest
1 голос
/ 02 декабря 2011

У меня было строгое представление о типе моего класса Usario Определено вот так

public partial class Usuario
{
    public Usuario()
    {
        this.Campana = new HashSet<Campana>();
    }

    public int IDUsuario { get; set; }
    public int IDPerfil_FK { get; set; }
    public string Nombre { get; set; }
    public string Password { get; set; }
    public bool Activo { get; set; }

    public virtual Perfil Perfil { get; set; }
    public virtual ICollection<Campana> Campana { get; set; }
}

Теперь я хочу знать, как мне избежать проверки класса campana, который связан с классом Usuarioв представлении, потому что, когда я делаю ModelState.IsValid, Модель проверяет атрибуты класса Usuario, а также класса Campana

1 Ответ

1 голос
/ 03 декабря 2011

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

У вас уже есть класс Usuario, теперь вы реализуете модель представления, которая будет содержать только те свойства, которые вы хотите передать представлению.Что-то вроде:

public class UsuarioProfileViewModel
{
    public int IDUsuario { get; set; }
    public string Nombre { get; set; }
    public bool Activo { get; set; }

    // Other properties for that view
}

Теперь на контроллере:

public ActionResult UsuarioProfile(UsuarioProfileViewModel model) {
{
    // Fill the missing properties for the model (when needed)

    View(model);
}

Таким образом, вы только переходите к просмотру необходимых данных.Аннотации данных работают для моделей представления точно так же, как и любой другой класс.

model инициализируется MVC, а свойства заполняются входящими данными через routeValues, поэтому вы можете сделать что-то вроде этого:

@Html.Action("UsuarioProfile", new { UsuarioID = 10 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...