2011-10-28 52 views
0

在我的項目,我們有渲染HTML像一些編輯模板如下:如何在MVC 3中包含內部模型的驗證?

<table> 
    <tr> 
     <td><image src="/SIIJYP/Content/Images/lupa.bmp" id="@(controlId)img"/></td> 
     <td> 
      @Html.Hidden("Id", Model.Id) 
      @Html.TextBox("Fullname", Model.Fullname, new {@readonly="readonly"}) 
     </td> 
    </tr> 
</table> 

這看起來有點像一個文本框旁邊,並用它來讓搜索和從人,選擇人員搜索彈出窗口。使用該模板

模型具有屬性如下:

public class MyModel 
{ 
    [Required(ErrorMessage="This value is required")] 
    [UIHint("PeopleSearch")] 
    public Person Responsible { get; set;} 
} 

所有作品完美,模板propertly渲染,值被公佈,驗證模型等。然而,當用戶沒有選擇一個人,帖子,不會顯示預期的錯誤消息「此值是必需的」。

當用戶提供任何值時,我們應該如何修改我們的模板以顯示消息?

UPADATE:人模型定義:

public class Person 
{ 
    public long Id { get; set;} 
    public string Fullname { get; set;} 
} 

我需要的是一種方式,讓我用RequiredAttribute標籤在負責任的屬性來驗證這兩個:Id和全名具有值並顯示錯誤否則在文本框下的消息。

+0

你說該模型是有效的,但後來說,該錯誤信息不會顯示。那麼客戶端驗證失敗還是服務器端?或兩者?你是否錯過了@ Html.ValidationMessage? –

+0

在服務器中,ModelState.IsValid爲False,但不顯示錯誤消息 – lontivero

回答

0

正如評論所說,你忘了放在HTML

@Html.ValidationMessageFor(model => model.Responsible.Name)