ValidationMessage方法在asp.net mvc中如何工作?
请给我解释一下asp.net mvc中的ValidationMessage方法在asp.net mvc中如何工作?,asp.net,asp.net-mvc,asp.net-mvc-4,Asp.net,Asp.net Mvc,Asp.net Mvc 4,请给我解释一下asp.net mvc中的ValidationMessage()是如何工作的 我已经了解到,如果ModelStateDictionary对象中的指定字段存在错误,它将显示一条验证消息,但是当我尝试使用它时,即使没有发生错误,它也会显示消息错误 这是我的控制器代码 public class HomeController : Controller { public HomeController(logger parameter) { TempData["
ValidationMessage()
是如何工作的
我已经了解到,如果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);
}
}
模型
这是我的视图代码
@{
ViewBag.Title=“index”;
}
索引
@TempData[“Hi”]
@Html.ValidationSummary()
@使用(Html.BeginForm(new{action=“update”}))
{
@Html.AntiForgeryToken()@Html.TextBox(“id”,70)
@文本框(“日期”,“1991年3月2日12:00:00”)
@Html.ValidationMessage(“日期”,“错误日期格式”)
}
这是我第一次在不提交表单的情况下运行代码时的输出
谁能给我解释一下吗 ValidationMessage()
生成HTML标记以显示错误消息
ValidationMessageFor(model=>model.Date)
仅当存在与模型上的字段相关联的错误消息时,才会生成标记并显示错误消息。另一个很好的地方是,它可以与作为NUGET软件包提供的不引人注目的验证jQuery库配合使用。您最好在viewmodel中使用数据注释。您需要转到MVC站点,学习基本教程。get方法应该初始化模型的一个实例并将其返回到视图。视图需要声明thr model-@model yoursassembly.data
,并使用强类型帮助程序正确绑定到模型属性-@Html.TextBoxFor(m=>m.Date)@Html.ValidationMessageFor(m=>m.Date)
。然后POST方法应该是公共操作结果更新(数据模型)
,因此所有模型绑定和验证都是开箱即用的。
public class data
{
public int Id { get; set; }
public DateTime Date { get; set; }
}
<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">
}