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

ASP.NET MVC与jQuery集成实现自定义验证

首先看看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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值