Asp.net MVC学习日记十四(页面提交验证)

本文详细介绍了如何在ASP.NET MVC框架中创建Person类并利用HomeController实现基本的表单操作,同时结合jQuery引入额外的验证功能。通过自定义验证规则类EmailAttribute,实现了更细致的输入验证。此外,文章还展示了如何将JavaScript验证与服务器端验证相结合,提高用户体验和数据准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先看看mvc自己是怎么做的

1、新建Person类

 public class Person
    {
        [DisplayName("First Name"), StringLength(10)]
        public string FirstName { get; set; }
        [DisplayName("Middle Name"), StringLength(50)]
        public string MiddleName { get; set; }
        [DisplayName("Last Name"), StringLength(50), Required]
        public string LastName { get; set; }
        [DisplayName("Birth Date"), DataType(DataType.Date)]
        public DateTime BirthDate { get; set; }
        [DataType(DataType.EmailAddress), Required]
        public string Email { get; set; }
        public string Phone { get; set; }
        public string Postcode { get; set; }
        [DataType(DataType.MultilineText)]
        public string Notes { get; set; }
    }

2、HomeController中

  public ActionResult Index()
        {
            ViewData["Message"] = "欢迎使用 ASP.NET MVC!";

            return View(new Person());
        }

        [HttpPost]
        public ActionResult Index(FormCollection form)
        {
            var person = new Person();
            TryUpdateModel(person);
            return View(person);
        }


3、Index.aspx中

<% using (Html.BeginForm()) {%>
<%: Html.EditorForModel() %>
<input type="submit" name="submit" value="Submit" />
<% } %>


再看看结合JQuery是怎么干的

1、去http://code.google.com/p/arscloud/source/browse/trunk/MvcFutures/MvcFutures/?r=7 下载一个MicrosoftMvcJQueryValidation.js

2、添加   

     <script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>

     <script src="../../Scripts/jquery.validate.js" type="text/javascript"></script>
     <script src="../../Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>

3、在Index.aspx

<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm()) {%>
<%: Html.EditorForModel() %>
<input type="submit" name="submit" value="Submit" />
<% } %>

 

 

自定义验证规则类

1、新建类EmailAttribute

public class EmailAttribute : RegularExpressionAttribute {
public EmailAttribute() : base(
@"^[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,6}$") {
ErrorMessage = "Email is invalid";
}
}

2、Models/Person.cs:
public DateTime BirthDate { get; set; }
[DataType(DataType.EmailAddress), Required, Email]
public string Email { get; set; }

3、Global.asax.cs:
protected void Application_Start() {
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
DataAnnotationsModelValidatorProvider.RegisterAdapter(
typeof(EmailAttribute),
typeof(RegularExpressionAttributeAdapter));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leesmn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值