【发布时间】:2017-12-01 00:21:55
【问题描述】:
我正在使用 MVC4。
验证失败,但未显示验证错误消息。
这是我的模型。
public class Configuration
{
public int Id { get; set; }
[Required(AllowEmptyStrings = false, ErrorMessage = "Site name is required.")]
[MinLength(6, ErrorMessage = "Name should be at least 6 characters.")]
public string SiteName { get; set; }
}
控制器。
[HttpPost]
public ActionResult Create(Configuration configItem)
{
if (ModelState.IsValid)
{
// do something.
}
return View("Index", configItem);
}
查看是
@model Models.SitesConfig.Configuration
@{
ViewBag.Title = "Sites Configurations";
}
<div>
@Html.ActionLink("Sites List", "List", "SiteConfig")
</div>
@using (Html.BeginForm("Create", "SiteConfig", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<fieldset>
<legend>New Satellitesite</legend>
<div>
@Html.LabelFor(m => m.SiteName, "Name")
@Html.TextBoxFor(m => m.SiteName)
@Html.ValidationMessageFor(m=>m.SiteName)
</div>
<br />
<input type="submit" value="Save" />
</fieldset>
}
如果有更好的验证方法,也请建议我。
【问题讨论】:
-
如果没有显示错误,你怎么知道验证正在工作?您是在谈论客户端还是服务器端验证?
-
这是服务器端验证。 Model.IsValid 返回 false。
-
顺便说一句,您的代码看起来不错。您所显示的视图是
Index.cshtml并且您没有对控制器操作中的 ModelState 集合执行任何操作吗? -
您是否在布局中引用了
Site.css?或者您是否有验证消息的自定义样式?可能是 html 输出中的验证消息,只是没有显示出来……你可以在点击提交后检查生成的 html 吗? -
我不知道,但它现在开始显示错误。再次清理并构建解决方案。但我面临另一个问题。
标签: asp.net-mvc-3 asp.net-mvc-4 validation model-validation