• 【转载】MVC2中自定义校验


    新建一个Mvc2的应用程序;

    在Models 文件夹下新建一个类EmailAttribute

     1 using System;
    2 using System.Collections.Generic;
    3 using System.Linq;
    4 using System.Web;
    5 using System.ComponentModel.DataAnnotations;
    6
    7 namespace MvcTemp.Models
    8 {
    9 public class EmailAttribute: RegularExpressionAttribute
    10 {
    11 public EmailAttribute()
    12 : base(@"^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$")
    13 {
    14 }
    15 }
    16 }

    重新编译下项目,下面演示如何自定义使用这个标记

    在Model文件夹下新建一个类Student

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.ComponentModel.DataAnnotations;
    using MvcTemp.Models;
    namespace MvcTemp.Model
    {
    public class Student
    {
    private int _id;
    [Required(ErrorMessage="必填")]
    public int Id
    {
    get { return _id; }
    set { _id = value; }
    }
    private string _name;
    [Required(ErrorMessage="必填")]
    public string Name
    {
    get { return _name; }
    set { _name = value; }
    }
    private string _emailAddress;
    [Email(ErrorMessage="错误的邮件地址")]
    public string EmailAddress
    {
    get { return _emailAddress; }
    set { _emailAddress = value; }
    }
    }
    }

    重新编译下项目,添加Controllers,

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
      
    namespace MvcTemp.Controllers
    {
        public class StudentController : Controller
        {
            //
            // GET: /Student/
      
            public ActionResult Index()
            {
                return View();
            }
      
            //
            // GET: /Student/Details/5
      
            public ActionResult Details(int id)
            {
                return View();
            }
      
            //
            // GET: /Student/Create
      
            public ActionResult Create()
            {
                return View();
            
      
            //
            // POST: /Student/Create
      
            [HttpPost]
            public ActionResult Create(FormCollection collection)
            {
                try
                {
                    // TODO: Add insert logic here
      
                    return RedirectToAction("Index");
                }
                catch
                {
                    return View();
                }
            }
              
            //
            // GET: /Student/Edit/5
       
            public ActionResult Edit(int id)
            {
                return View();
            }
      
            //
            // POST: /Student/Edit/5
      
            [HttpPost]
            public ActionResult Edit(int id, FormCollection collection)
            {
                try
                {
                    // TODO: Add update logic here
       
                    return RedirectToAction("Index");
                }
                catch
                {
                    return View();
                }
            }
      
            //
            // GET: /Student/Delete/5
       
            public ActionResult Delete(int id)
            {
                return View();
            }
      
            //
            // POST: /Student/Delete/5
      
            [HttpPost]
            public ActionResult Delete(int id, FormCollection collection)
            {
                try
                {
                    // TODO: Add delete logic here
       
                    return RedirectToAction("Index");
                }
                catch
                {
                    return View();
                }
            }
        }
    }

      在Global.asax页中注册自己定义的标记

    View Code
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Routing;
    using MvcTemp.Models;
    using System.ComponentModel.DataAnnotations;

    namespace MvcTemp
    {
    // 注意: 有关启用 IIS6 或 IIS7 经典模式的说明,
    // 请访问 http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
    public static void RegisterRoutes(RouteCollection routes)
    {
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
    "Default", // 路由名称
    "{controller}/{action}/{id}", // 带有参数的 URL
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
    );

    }

    protected void Application_Start()
    {
    AreaRegistration.RegisterAllAreas();
    DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(EmailAttribute), typeof(RegularExpressionAttributeAdapter));
    RegisterRoutes(RouteTable.Routes);
    }
    }
    }

       最后创建Student的Action视图即可

  • 相关阅读:
    条码的开发使用介绍文档
    identity server4
    IUrlHelper ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
    netcore 版本 切换 sdk
    深层目录文件复制,C# 递归,录音录像图片文件过多,用于测试程序
    C# int uint long ulong byte sbyte float double decimal 范围,及类型!
    sqlserver 数据类型 C# clr 数据类型 映射
    Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while attempting to activate 'xxxxx.Controllers.xxxxController'.
    identity 基础表没有创建 aspnetuserclaims aspnetuserlogins
    DatabaseGeneratedOption
  • 原文地址:https://www.cnblogs.com/fx2008/p/2283175.html
Copyright © 2020-2023  润新知