程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET MVC中對Model進行分步驗證的解決方法

ASP.NET MVC中對Model進行分步驗證的解決方法

編輯:關於ASP.NET

在我之前的文章:ASP.NET MVC2.0結合WF4.0實現用戶多步注冊流程中將一個用 戶的注冊分成了四步,而這四個步驟都是在完善一個Model的信息,但是又分頁面 填寫信息的,當時我加上ModelState.IsValid這句驗證代碼的時候,根本沒法通 過驗證,因為在注冊的前面三步,注冊用戶的Model信息都沒填寫完整,而 ModelState.IsValid是對一個實體的所有屬性進行判斷驗證的。當時很糾結,因 為剛接觸Asp.net MVC,故沒有找到解決方案。這篇文章將給出解決的辦法。看下 面需要驗證的Model的代碼如下:

代碼

public class UserViewModel
{
[DisplayName("step")]
[Required(ErrorMessage = "You must select a step .")]
public int Step { get; set; }
//個人信息
[Required (ErrorMessage = "姓名不能為空")]
[StringLength(20, ErrorMessage  = "姓名長度不能超過20個字符")]
public string Name { get; set;  }
[RegularExpression(@"120|((1[0-1]|\d)?\d)", ErrorMessage = " 年齡格式不對")]
public int? Age { get; set; }
//職位信息
[Required(ErrorMessage = "職位不能為空")]
public string Post  { get; set; }
public int? Salary { get; set; }
//學歷 信息
[Required(ErrorMessage = "畢業院校不能為空")]
public  string University { get; set; }
public int? GraduationYear {  get; set; }
//聯系信息
[Required(ErrorMessage = "郵件不能為 空")]
[RegularExpression(@"^[a-z][a-z|0-9|]*([_][a-z|0-9]+)*([.][a- z|" + @"0-9]+([_][a-z|0-9]+)*)?@[a-z][a-z|0-9|]*\.([a-z]" + @"[a- z|0-9]*(\.[a-z][a-z|0-9]*)?)$", ErrorMessage= "郵件格式不正確")]
public string Email { get; set; }
public int? Mobile {  get; set; }
public IEnumerable<SelectListItem> StepList  { get; set; }
public UserViewModel()
{
var list = new  List<SelectListItem>() {
new SelectListItem { Text =  "(Select)" },
new SelectListItem { Value = "1", Text =  "Step1" },
new SelectListItem { Value = "2", Text =  "Step2" },
new SelectListItem { Value = "3", Text =  "Step3" },
new SelectListItem { Value = "4", Text =  "Step4" }
};
this.StepList = new SelectList(list, "Value",  "Text");
}

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved