2012-09-06 218 views
3

我正在使用MVC4。验证错误消息不显示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); 
    } 

View是

@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

您正在使用MVC3或MVC4? – Curt

+0

使用VS2012和MVC4 – Naresh

+0

如果没有显示错误,您如何知道验证正在工作?你在谈论客户端还是服务器端验证? – nemesv

回答

3

我不知道是什么问题。清理并构建应用程序后,我能够看到错误消息。

感谢, 纳雷什

+0

同样在这里:) .Clean +重建=已解决 –

1

应该有@Html.ValidationSummary("Please correct the errors")在查看

+4

'@ Html.ValidationMessageFor(m => m.SiteName)'应该能够为'SiteName'属性显示一条错误消息。总结不应该需要。 – Nope

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()有助于显示错误消息。

0

如果您尝试上述解决方案,但仍然无法正常工作,那么您可能需要格式化View文件。转到编辑高级格式文档。在尝试格式化文件时切记不要进入调试模式,因为如果您正在调试项目,则不会看到上面列出的过程。

0

确保您的看法是引用了jQuery验证的脚本标签 -

@section Scripts 
{ 
    @Scripts.Render("~/bundles/jqueryval") 
} 
相关问题