我对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">
}
我的问题是,为什么消息请插入正确的日期格式直接出现,当我还没有提交表格的时候,我还没有提交表格,为什么当我在日期提交错误的表格时格式,出现相同的消息,但不是我在更新方法中设置为日期键的消息 Wronge Date 。
我可能仍然不理解这两种方法,所以我希望能找到一些人向我解释。
通过示例或参考进行探索将不胜感激
答案 0 :(得分:2)
请查看http://www.asp.net/mvc/overview/getting-started/introduction/adding-validation
因为您已在View中输入了一条消息,所以它将使用您从控制器添加的错误。至于你的全名,你还没有消息集,只有该字段的placehoder。