我正在試驗不顯眼的客戶端驗證,並一直在努力讓它在我的方案中工作。MVC3客戶端驗證使用ViewModels
我的主要問題是我的視圖有一個強類型的ViewModel。這個ViewModel包含了幾個用於填充下拉列表的集合,並有一個額外的屬性(我們稱之爲Person),這是我希望表單編輯的實際對象。
我的控制器操作處理帖子期望得到一個Person對象而不是整個ViewModel張貼。所以,我一直無法使用:
@Html.TextBoxFor(m => m.Person.Name)
,因爲我需要輸入控制有一個名稱=「名稱」,而不是「Person.Name」 我可以用
@Html.TextBox("Name", m.Person.Name)
更正此
但是,最終的輸入控件缺少客戶端驗證需要的數據屬性。 有沒有辦法讓客戶驗證工作,保持我的viewmodel,並使我的控制器行動一起工作?
在一個側面說明,好像在表單字段數據 - *屬性只加了,如果你使用
@using (Html.BeginForm())
用手寫出我自己的<form>
標籤似乎打破它。
是否需要使用表單助手?
您是否嘗試過使用TextBoxFor超載與htmlAttributes?就像調用類似於:@ Html.TextBoxFor(m => m.Person.Name,new {name =「Name」)? –
我希望工作。它允許我添加新的屬性,但不覆蓋name屬性。我認爲這種行爲應該改變,所以你可以這樣做。 –