本文共 3525 字,大约阅读时间需要 11 分钟。
在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: RegularExpressionAttribute10 {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页中注册自己定义的标记
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视图即可
转载地址:http://nljab.baihongyu.com/