2012-09-06 86 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") 
}