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">
}
这是我第一次运行代码而不提交表单
时的输出
所以请任何人解释一下!。
答案 0 :(得分:0)
ValidationMessage()
生成HTML标记以显示错误消息。
ValidationMessageFor(model => model.Date)
生成标记并仅在与模型上的字段关联的情况下显示错误消息。关于这一点的另一个好处是,它可以与作为NUGET包提供的不显眼的验证jQuery库一起使用。