在ViewModel或模型中的ASP.NET MVC验证?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在ViewModel或模型中的ASP.NET MVC验证?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1677字,纯文字阅读大概需要3分钟。
内容图文
![在ViewModel或模型中的ASP.NET MVC验证?](/upload/InfoBanner/zyjiaocheng/684/c5f606a711fb42b08cec4cf029f10efa.jpg)
我有一个包含基本信息的模型.但是,我的View仅需要显示更多信息,因此我认为这里需要ViewModel来显示这些额外信息.但是,我应该在模型中添加Validation属性,以便在执行代码优先迁移时,它会自动为我创建具有每列正确数据类型的数据库,还是应该将Validation属性添加到ViewModel中,因为表单应该验证填写的信息?
public class Module
{
[Key]
public int id { get; set; }
[Required]
[StringLength(100)]
[Column(TypeName = "varchar")]
[Display(Name="Module Name")]
public string ModuleName { get; set; }
}
public class ModuleViewModel
{
[Key]
public int id { get; set; }
[Required]
[StringLength(30)]
[Column(TypeName="varchar")]
[Display(Name="Module ID")]
public string ModuleID { get; set; }
[Required]
[StringLength(100)]
[Column(TypeName = "varchar")]
[Display(Name="Module Name")]
public string ModuleName { get; set; }
//To populate dropdownlist
public List<SelectListItem> ModuleLevelList { get; set; }
}
在这种情况下,我真的需要ViewModel吗?
解决方法:
我强烈建议您使用视图模型.您可能会认为这是多余的,但是我保证您使用它非常有用,并且在将来您会感谢我的.过去,我曾被烧过很多遍,试图在任何地方都使用模型对象,并严重依赖于像您这样的数据注释.另外,您不必在模型层中乱丢视图层垃圾,例如[Display(Name =“ Module Name”)]
对于您的情况,我建议这样做:
public class Module
{
[Key]
public int id { get; set; }
[Required]
[StringLength(100)]
[Column(TypeName = "varchar")]
public string ModuleName { get; set; }
}
public class ModuleViewModel
{
public int id { get; set; }
[Required]
[StringLength(30)]
[Display(Name="Module ID")]
public string ModuleID { get; set; }
[Required]
[StringLength(100)]
[Display(Name="Module Name")]
public string ModuleName { get; set; }
//To populate dropdownlist
public List<SelectListItem> ModuleLevelList { get; set; }
}
内容总结
以上是互联网集市为您收集整理的在ViewModel或模型中的ASP.NET MVC验证?全部内容,希望文章能够帮你解决在ViewModel或模型中的ASP.NET MVC验证?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。