我有查看强类型的我的班级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; }
}
现在我想知道的是如何避免在视图中与类Usuario相关的类campana的验证,因为当我执行ModelState.IsValid
时,模型验证Usuario类的属性和也是Campana班级的
答案 0 :(得分:1)
这样做的正确方法是使用视图模型。
您已经拥有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 })