我有一个关于ModelState.AddModelError方法和ValidationMessage方法的问题。
我是ASP.NET MVC的新手,我有点困惑。
我写了这段代码:
public ActionResult update(FormCollection collection)
{
int oos = 0;
try
{
oos = int.Parse(collection[0]);
}
catch
{
}
data d = new data();
TryUpdateModel(d , collection.ToValueProvider());
if (ModelState.IsValid)
{
return View("index",d);
}
else
{
ModelState.AddModelError("Date", "Wronge Date");
d.Id = 50;
return View("index",d);
}
}在视图端的代码
@{
ViewBag.Title = "index";
}
<h2>index</h2>
@TempData["Hi"]
@Html.ValidationMessage("fullname")
@using (Html.BeginForm())
{
@Html.AntiForgeryToken() @Html.TextBox("id", 70)
@Html.TextBox("Date", "3/2/1991 12:00:00 ص")
@Html.ValidationMessage("Date","Please insert the correct Date Format")
<input type="submit">
}我的问题是,为什么当我没有提交表单时,请插入正确的日期格式时直接显示正确的日期格式;为什么当我提交带有日期格式错误的表单时,出现相同的消息,而不是我在更新方法中设置为日期键的消息是错误日期。
也许我还不明白这两种方法,所以我希望找人向我解释。
如有实例或参考,将不胜感激。
发布于 2015-04-19 15:34:27
请看http://www.asp.net/mvc/overview/getting-started/introduction/adding-validation
因为您已经在视图中输入了一条消息,所以它将对您从控制器添加的错误使用该消息。至于您的全名,您还没有设置消息,只有字段的占位符。
https://stackoverflow.com/questions/29731844
复制相似问题