ASP NET MVC学习之模型验证篇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MVC学习之模型验证篇
一.学习前的一句话
在这里要先感谢那些能够点开我随笔的博友们。慢慢的已经在博客园中度过一年半了,伊始只是将博客园作为自己学习的记录本一样使用,也不敢将自己的随笔发表到博客园首页,生怕自己的技艺不高,反倒成了笑话。但是随着时间的推移,再也按捺不住这种想法,于是就写了一篇随笔发表到博客园首页。让我意想不到的是有许多人都看了,而且也留下了评论。这让我鼓起勇气写了第二、三、四篇。到现在的连载,这里我希望那些从未发表过随笔的人可以尝试去发表,在这里他人不会嘲讽你,而是会给你更好的建议。说了这么多下面我们继续开始学习ASP. NET MVC吧。
二.准备工作
1、创建一个 MVC 4网站(笔者的命名是MvcStudy)
2、在Models下创建一个Register模型类,具体代码如下所示:
1 namespace MvcStudy.Models
2 {
3 public class Register
4 {
5 public String UserName{ get; set; }
6 public String Password { get; set; }
7 public String RptPassword{ get; set; }
8 public String Email { get; set; }
9 public DateTimeBirthDate{ get; set; }
10 public boolIsApprove{ get; set; }
11 }
12 }
3、创建一个名为Home的控制器,并在其中写入下面的代码:
1 namespace MvcStudy.Controllers
2 {
3 public class HomeController : Controller
4 {
5 public ActionResultIndex()
6 {
7 return View();
8 }
9
10 [HttpPost]
11 public ActionResultIndex(Register reg)
12 {
13 return View();
14 }
15 }
16 }
4、接着在Views下创建一个Home文件夹并在其中新建一个Index 视图,代码如下:
1 @model MvcStudy.Models.Register
2 @{
3 ViewBag.Title = "Index";
4 }
5
6
7 @using (Html.BeginForm())
8 {
9
10 用户名:
11 @Html.EditorFor(m =>erName)
12
13
14 密码:
15 @Html.EditorFor(m =>m.Password)
16
17
18 重复密码:
19 @Html.EditorFor(m =>m.RptPassword)
20
21
22 出生日期:
23 @Html.EditorFor(m =>m.BirthDate)
24
25
26 邮箱:
27 @Html.EditorFor(m =>m.Email)
28
29
30 @Html.EditorFor(m =>m.IsApprove)
31 同意相关条约
32
33
34
35
36 }
5、因为后面要用到客户端验证,所以这里我们先把需要引用需要的js 库(在Views/Shared/_Layout.cshtml中写入):
1
2
3
4
5
6
7 @Styles.Render("~/Content/css")
8 @Scripts.Render("~/bundles/modernizr")
9 @Scripts.Render("~/bundles/lufy")
10
11
12
13 @RenderBody()
14
15 @Scripts.Render("~/bundles/jquery")
16 @Scripts.Render("~/bundles/jqueryval")
17 @RenderSection("scripts", required: false)
18
19
PS:为了确保正确,请读者验证下web.config中的以下属性的值是否跟笔者的一样:
三.常规验证
相信很多从事的开发者在对数据的验证上基本都是用的ASP. NET自带的验证控件,同时在后台还会通过N多个if语句再去判断,所以在 MVC的常规验证跟这个一样,唯一的区别就是错误的信息输出不需要我们自己实现了,下面我们修改Home控制器中的I ndex(Register reg)动作: