2011-04-25 96 views
0

所以當我有一個DisplayAttribute裝飾在我的模型的一個屬性...DisplayAttribute關閉驗證消息

[Required, Display(Name = "Some Name")] 
public string SomeProperty { get; set; } 

我使用ValidationMessageFor幫手

時不再收到該領域的驗證消息
@Html.ValidationMessageFor(model => model.SomeProperty) 

有什麼奇怪的是,如果我使用指定消息的重載,我仍然沒有得到消息。任何人都知道這裏發生了什麼?

回答

0

無法重現。

型號:

public class MyViewModel 
{ 
    [Required, Display(Name = "Some Name")] 
    public string SomeProperty { get; set; } 
} 

控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     var model = new MyViewModel(); 
     return View(model); 
    } 

    [HttpPost] 
    public ActionResult Index(MyViewModel model) 
    { 
     return View(model); 
    } 
} 

檢視:

@model MyViewModel 
@using (Html.BeginForm()) 
{ 
    @Html.LabelFor(x => x.SomeProperty) 
    @Html.EditorFor(x => x.SomeProperty) 
    @Html.ValidationMessageFor(x => x.SomeProperty) 
    <input type="submit" value="OK" /> 
} 

當表單提交驗證錯誤消息,如果字段留空正確顯示。

+0

我唯一能想到的另一件事是我有一個類型編輯器模板(HttpPostedFileBase),輸入是type = file。我無法讓它工作。該字段變爲紅色(默認的CSS樣式),但沒有消息。 – JasonCoder 2011-04-26 16:24:15