一、一般情况

对于使用过MVC框架的人来说,对MVC的数据验证不会陌生,比如,我有一个Model如下:
public class UserInfo
{
[Required(ErrorMessage = "UserName不可为空1111")]
public string UserName { get; set; }
public string Sex { get; set; }
public string Mobile { get; set; }
public string Address { get; set; }
}
前端:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>UserInfo</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Sex, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Sex, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Sex, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Mobile, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Mobile, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Mobile, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
效果:
是的,MVC可以通过对一些属性添加一定的特性来对数据进行验证。这对大家来说可能并不陌生。
如果仅仅是这样就完事了,那么也就没事么意思了。
二、常用情况
在实际的开发中,我们大都是通过EF,或者其他方式,使得数据库中的每一个表或视图,都在代码中对应的一个类模型,对于通过数据库生成的模型,我们不宜修改,退一步讲,即使我们在这个类中对一些属性增加一些数据验证的特性,那么,数据库发生变化后,如果我再重新生成这些Model,我们之前添加好的验证特性将没有了,那么,我们如何解决这样的问题呢?
假如:
public class UserInfo
{
public string UserName { get; set; }
public string Sex { get; set; }
public string Mobile { get; set; }
public string Address { get; set; }
}
UserInfo是通过数据库生成的一个模型,对于数据库生成的模型,我们不宜修改。但那是,我们又需要对这个模型中的某些属性进行数据验证,比如需要对UserName属性进行非空验证,那么我们如何做呢?
大家通常会想到部分类,是的,我们可以通过部分类来解决上述问题。
首先,我们将模型中的类加上关键字 partial ,然后我们再写一个这个模型的部分类。
public partial class UserInfo
{
[Required(ErrorMessage = "UserName不可为空1111")]
public string UserName { get; set; }
}
但是,这样会提示我们一个错误,就是类中存在重复的属性,是的,部分类中,属性是不可以重名的。那么,我们该怎么办呢,MVC框架已经给了我们解决方案了。
我们可以这么写:
[MetadataType(typeof(MeteUserInfo))]
public partial class UserInfo
{
private class MeteUserInfo
{
[Required(ErrorMessage = "UserName不可为空1111")]
public string UserName { get; set; }
}
}
这样,我们上述的问题就迎刃而解了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# MVC
# 数据验证
# SpringMVC使用@Valid注解进行数据验证的方法
# 详解SpringMVC学习系列(6) 之 数据验证
# ASP.NET MVC 数据验证及相关内容
# 为空
# 类中
# 我们可以
# 的人
# 都是
# 在这个
# 都在
# 那是
# 也就
# 是这样
# 不可以
# 可以通过
# 给了
# 迎刃而解
# 这对
# 我再
# 要对
# 如需
# 或者其他
# 如何解决
相关文章:
建站之星如何快速生成多端适配网站?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
如何快速搭建高效可靠的建站解决方案?
如何访问已购建站主机并解决登录问题?
如何基于云服务器快速搭建个人网站?
香港服务器WordPress建站指南:SEO优化与高效部署策略
如何在服务器上配置二级域名建站?
历史网站制作软件,华为如何找回被删除的网站?
如何用搬瓦工VPS快速搭建个人网站?
如何打造高效商业网站?建站目的决定转化率
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何快速搭建高效简练网站?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
如何用腾讯建站主机快速创建免费网站?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
建站之星收费标准详解:套餐费用及年费价格表一览
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
如何用IIS7快速搭建并优化网站站点?
如何用PHP工具快速搭建高效网站?
*服务器网站为何频现安全漏洞?
家具网站制作软件,家具厂怎么跑业务?
如何在西部数码注册域名并快速搭建网站?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
建站主机是否等同于虚拟主机?
制作农业网站的软件,比较好的农业网站推荐一下?
网站制作的步骤包括,正确网址格式怎么写?
山东云建站价格为何差异显著?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
建站为何优先选择香港服务器?
建站之星后台管理如何实现高效配置?
如何选择可靠的免备案建站服务器?
c# 在ASP.NET Core中管理和取消后台任务
,sp开头的版面叫什么?
建站主机解析:虚拟主机配置与服务器选择指南
如何通过建站之星自助学习解决操作问题?
建站之星3.0如何解决常见操作问题?
如何选择香港主机高效搭建外贸独立站?
建站主机默认首页配置指南:核心功能与访问路径优化
制作网站的模板软件,网站怎么建设?
,如何利用word制作宣传手册?
如何在阿里云香港服务器快速搭建网站?
建站之星后台管理系统如何操作?
微课制作网站有哪些,微课网怎么进?
如何基于PHP生成高效IDC网络公司建站源码?
如何通过虚拟机搭建网站?详细步骤解析
SQL查询语句优化的实用方法总结
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
*请认真填写需求信息,我们会在24小时内与您取得联系。