MVC中的验证规则

 

 前面的博客中曾经提到过ModelBing机制,也在Demo中体现过,在MVC中更吊的是封装了自定义的验证规则。下面来一个Demo来展现一下,看了后,你一定会爱上它的,能让你少写很多JS语句。

1.View层

 

<span style="font-size:18px;">@*自动绑定实体模型*@
@model MvcApplication1.Models.User


<h2>Login</h2>
<form method="post">
    @*绑定实体显示名称*@
    @Html.LabelFor(user=>user.ID)
    @*绑定实体值*@
    @Html.TextBoxFor(user => user.ID) 
    @*验证规则*@   
    @Html.ValidationMessageFor(user => user.ID)<br />
    @Html.LabelFor(user=>user.Password)
    @Html.EditorFor(user => user.Password)
    @Html.ValidationMessageFor(user => user.Password)<br />
    <input type="submit" name="提交" />
</form>
   

</span>


2.Model层

 

<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace MvcApplication1.Models
{
    public class User
    {
        //必填项
        [Required]
        //界面绑定的名称
       [DisplayName("用户别称")]
        //限制字符的长度
        [StringLength(6,ErrorMessage="您输入的名字太长了")]
        //绑定的类型
        [DataType(DataType.Text)]
       
        //[Range(555555,999999)]
        public string ID { get; set; }
        [Required]
        [DataType(DataType.Password)]
        [DisplayName("用户密码")]
        public string Password { get; set; }
    }
}</span>


3.Controller

 

<span style="font-size:18px;"> public ActionResult Login()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Login(User user)
        {
            if (user.ID =="Admin" || user.Password == "Admin")
            {
                return Content("登录成功");
            }
            else
            {
                return Content("密码错误");
            }
           
        }</span>

分析:整体实现的功能很简单,就是把页面传进的值通过在Controller中验证后返回结果,主要的功能就是在Model中引入了System.ComponentModel.DataAnnotations和System.ComponentModel的空间,然后为实体的属性绑定了一些自定的验证功能例如[Required]、 [DisplayName("用户别称")]、 [StringLength(6,ErrorMessage="您输入的名字太长了")]等,当然这两个命名空间中还有很多,有兴趣的可以查一下。

 最终在界面上绑定强类型视图的时候,通过反射机制,自动为每个控件绑定实体属性。




  • 0
    点赞
  • 11
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

<p> <span style="color:#000000;"><strong>大体分为3个阶段学习:</strong></span> </p> <p> <span style="color:#000000;"><strong>第一阶段是<span style="background-color:#FFE500;">mvc基础学习</span>,通过通俗易懂例子,体现mvc框架优势;</strong></span> </p> <p> <span style="color:#000000;"><strong>第二阶段是<span style="background-color:#FFE500;">EF学习</span>,通过实际案例,体现orm框架伟大之处;</strong></span> </p> <p> <span style="color:#000000;"><strong>第三阶段是<span style="background-color:#FFE500;">项目开发</span>阶段,采用mvc+ef+多层架构布局,采用TDD开发模式</strong></span><strong><span style="font-size:16px;">,大概功能如下:</span></strong> </p> <p> <br /> </p> <p> <span style="font-size:16px;"><strong>   《巧租房》是一个手机版租房网站,提供了搜索房源、预约看房、房源委托、后台抢单、房源管理、操作日志、定时报表、配置管理等功能。项目采用是b/s模式架构,包括一个后台管理和一个前端可以自适应于手机端页面,项目全程采用TDD开发模式,用到如下技术:</strong></span><span style="font-size:16px;"><strong> </strong></span> </p> <p> <span style="font-size:16px;"><strong>     </strong></span><span style="font-size:16px;"><span style="font-size:16px;"><strong> 前端技术:</strong></span><strong><span style="font-size:16px;">前端MVC引擎(artTemplate)、HUI、MUI(手机端自适应)、ValidForm、Layer;</span></strong><br /> </span> </p> <p> <span style="font-size:16px;"><span style="font-size:16px;"><strong>    .Net高级技术:</strong></span><strong><span style="font-size:16px;">自定义Filter、自定义ModelBinder、ASP.Net MVC+EntityFramework实践;</span></strong></span> </p> <p> <span style="font-size:16px;"><span style="font-size:16px;"><strong>     大型网站架构:</strong></span><strong><span style="font-size:16px;">UnitTest、AutoFac、分布式架构(Redis、Memecached等)、CDN与云存储、云计算服务(短信验证、SendCloud邮件云)、RBAC权限控制、页面静态化和SSI;数据库并发控制(悲观锁与乐观锁);</span></strong></span> </p> <p> <span style="font-size:16px;"><span style="font-size:16px;"><strong>      高级开源组件:</strong></span><strong><span style="font-size:16px;">ElasticSearch全文搜索引擎;Quartz.Net定时调度;UEditor;Log4Net**版;互联网网站安全(XSS、CSRF等);CodeCarvings.Piczard(水印、缩略图);CaptchaGen(验证码);WebUploader文件无刷新上传</span></strong></span> </p> <p> <span style="font-size:16px;"><strong><span style="font-size:16px;"><img src="https://img-bss.csdn.net/202002071220199742.png" alt="" /><br /> </span></strong></span> </p> <strong><span style="font-size:16px;"><img src="https://img-bss.csdn.net/202002071220288479.png" alt="" /></span></strong> <p> <br /> </p> <p> <br /> </p> <p> <img src="https://img-bss.csdn.net/202002071221023835.jpg" alt="" /> </p> <p> <img src="https://img-bss.csdn.net/202002071221196040.jpg" alt="" /> </p> <p> <img src="https://img-bss.csdn.net/202002071221399932.jpg" alt="" /> </p> <p> <img src="https://img-bss.csdn.net/202002071222055368.jpg" alt="" /> </p> <p> <img src="https://img-bss.csdn.net/202002071222246104.jpg" alt="" /> </p>
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值