ViewModel類:
/// <summary> /// 評論用驗證視圖 /// </summary> public partial class VCreateShopComment { [Required(AllowEmptyStrings = false, ErrorMessage = "旺旺是必須的")] public string WW { get; set; } [Required(AllowEmptyStrings = false, ErrorMessage = "必須評論")] [StringLength(200, ErrorMessage = "評論內容不能超過{0}字")] public string CommentText { get; set; } [Range(1, 5, ErrorMessage = "評分要在{1}到{2}之間")] public short Score { get; set; } //[Range(0, int.MaxValue, ErrorMessage = "您的賬戶無效")] public int ID{ get; set; } }
控制器
[HttpPost] public ActionResult Add(VCreateShopComment v) { if (ModelState.IsValid) { //做愛做的事 } StringBuilder sb = new StringBuilder(); var errors = ModelState.Values; foreach (var item in errors) { foreach (var item2 in item.Errors) {
if (!item2.ErrorMessage.IsNullOrWhiteSpace())
{
sb.AppendLine(item2.ErrorMessage + "<br />"); }
} } return Content(sb.ToString()); }
錯誤的輸出用2次遍歷就行了,前提是,對於每個驗證特性ErrorMessage 是要有的