2014-03-30 74 views
0

我有這樣的視圖模型客戶端驗證:ASP.NET MVC:複雜(ε2)意見

public class Letter 
{ 
    public strng Name{get;set;} 

    [UIHint("UserSelector")] 
    [Required] 
    public List<int> Users{get;set;} 
} 

對於渲染視圖模型的信我用Html.EditorForModel()。 EditorTemplate「UserSelector」是複雜的視圖,看起來像這樣:
enter image description here
在提交表單之前,我爲選定的用戶手動生成隱藏字段控件,顯然RequiredAttribute不適用於用戶屬性。什麼是「真實」的方式來強制UserSelector視圖「理解」RequiredAttribute?

回答

0

您可以首先使用另一個空值的字符串,然後在隱藏的輸入中使用它,然後使其成爲必需。每當客戶端從左向右添加用戶時,請更新隱藏的輸入值,如「Usera,Userb ....」。所以當客戶嘗試提交表單時,這個隱藏的輸入必須有價值。

+0

是否意味着我必須自己處理複雜視圖中的驗證:爲隱藏字段添加必需的屬性,顯示驗證消息等? – mtkachenko

+0

對於您的情況,只需放入一個字符串併爲其添加一個必需屬性,MVC會爲您進行驗證。 –

+0

提交之前我爲每個id生成每個隱藏的輸入:如果我選擇tom(id:4)和mark(id:5),那麼我創建。你想爲所有值使用一個隱藏字段嗎?是否需要額外的解析才能將其轉換爲列表? – mtkachenko