ValidationMessage方法如何在asp.net mvc中运行?

时间:2015-04-20 10:05:19

标签: asp.net asp.net-mvc asp.net-mvc-4

Cananyone向我解释了asp.net mvc中的ValidationMessage()是如何工作的。

我在msdn.microsoft.com中读到,如果ModelStateDictionary对象中的指定字段存在错误,它会显示验证消息,但是当我尝试使用它时,即使没有它也会显示消息错误。

这是我的控制器代码

public class HomeController : Controller
{
    public HomeController(logger parameter)
    {
        TempData["Hi"] = "Hi";
    }

    public ActionResult Index()
    {
        return View();
    }

    public ActionResult update(FormCollection collection)
    {
        data d = new data();
        TryUpdateModel(d , collection.ToValueProvider());
        if (!ModelState.IsValid)
        {
            ModelState.AddModelError("Date", "Error");
        }
        return View("index", d);
    }
}

模型

public class data
{
    public int  Id { get; set; }
    public DateTime Date { get; set; }
}

这是我的观看代码     @ {         ViewBag.Title =" index&#34 ;;     }

<h2>index</h2>
@TempData["Hi"]
@Html.ValidationSummary()
@using (Html.BeginForm(new{action= "update"}))
{ 
    @Html.AntiForgeryToken() @Html.TextBox("id", 70)
    @Html.TextBox("Date", "3/2/1991 12:00:00 ص")
    @Html.ValidationMessage("Date","Error date format")
    <input type="submit"> 
}

这是我第一次运行代码而不提交表单

时的输出

enter image description here

所以请任何人解释一下!。

1 个答案:

答案 0 :(得分:0)

ValidationMessage()生成HTML标记以显示错误消息。

ValidationMessageFor(model => model.Date)生成标记并仅在与模型上的字段关联的情况下显示错误消息。关于这一点的另一个好处是,它可以与作为NUGET包提供的不显眼的验证jQuery库一起使用。