我正在使用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>
}
如果有更好的方法进行验证,请建议我。
答案 0 :(得分:3)
我不知道是什么问题。在清理并构建应用程序之后,我能够看到错误消息。
谢谢, 纳雷什
答案 1 :(得分:1)
视图中应该有@Html.ValidationSummary("Please correct the errors")
答案 2 :(得分:0)
@using (Html.BeginForm("Create", "SiteConfig", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary()
<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>
}
试试这个.. @ Html.ValidationSummary()有助于显示错误信息。
答案 3 :(得分:0)
如果您尝试上述解决方案仍然无效,那么您可能需要格式化View文件。转到编辑 - 高级格式文档。在尝试格式化文件时,请记住不要处于调试模式,因为如果您正在调试项目,则不会看到上面列出的过程。
答案 4 :(得分:0)
确保您的View引用了Scripts标记中的jQuery验证 -
@section Scripts
{
@Scripts.Render("~/bundles/jqueryval")
}