注释验证不起作用

时间:2012-11-24 12:20:26

标签: c# asp.net-mvc validation annotations

请帮我解决以下问题。 Model类正在使用System.ComponentModel.DataAnnotation

namespace Proj.Models
{
    public class Customer
    {
        [Required]
        public string CustomerID{get;set;}

        [Required]
        public string CustomerName{get;set;}
    }
}

我使用此模型创建了一个控制器,操作方法为:

public class Customer:Controller
{
    public ActionResult Details()
    {
        return View();
    }
}

剃刀视图是Details.cshtml,具有以下标记和代码:

@model Proj.Models.Customer

<form method="post">

@Html.EditorForModel()

<button>Submit!!</button>

</form>

但是,当我点击提交时,没有看到预期的验证错误。

2 个答案:

答案 0 :(得分:2)

您需要创建一个方法,将您的模型作为输入,如下所示:

[HttpPost]
public ActionResult Index(Customer customer)
{
    return View();
}

[HttpPost]确保仅在POST请求上调用该方法。

答案 1 :(得分:0)

您需要为模型创建编辑器模板。默认情况下,不会发出验证消息。在您的编辑器模板中,您必须对@ValidationMessageFor字段使用Required

希望这有帮助。