避免关系类的模型验证
本文关键字:模型 验证 关系 | 更新日期: 2023-09-27 18:16:25
我的类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的属性
正确的方法是使用视图模型。
你已经有了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 })