我有一個關於在視圖上表示覆雜視圖的問題。由於我的代碼已經很複雜,爲了尋求答案,我想出了一個簡單的模型。在視圖上表示覆雜類型
例如如果我想使用HTML輔助顯示的名字一個TextBox那麼這將工作
@Html.TextBoxFor(model => model.FirstName, new { @class = "Name" })
我有認爲這是我的模型類和複合型
public class Person
{
public string FirstName { get; set; }
public string Surname { get; set; }
public string Phone { get; set; }
public List<Address> Address {get; set;}
}
[ComplexType]
public class Address
{
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
}
問題現在呈現爲地址'街道屬性的文本框。我不想將其硬編碼到視圖中,我更願意使用Lambda表達式來獲取街道,城市和州的文本框。雖然這個語法是錯誤的,這裏就是我試圖完成
@Html.TextBoxFor(model => model.Address.Street, new { @class = "Name" })
或者東西在C#中的法律是抽象會從我輸入輸入姓名權控制到輔助方法。這是因爲在爲我的項目使用模型綁定時,我不希望在我的模型更改後返回我的視圖以硬編碼輸入名稱。
UPDATE 地址是List類型。我更新了代碼,以反映地址是我的代碼中的類型地址列表的事實。
您是否嘗試過'@ Html.EditorForModel'?請參閱http://stackoverflow.com/questions/6537220/why-not-use-html-editorformodel。 –
你用'Html.TextBoxFor(m => m.Address.Street)給出的例子'看起來對我有效。它不適合你嗎?也許我誤解了你的問題。 – Peter
'Html.TextBoxFor(m => m.Address.Street)'不適合我。我編輯了我的問題,以反映我認爲是什麼問題。讓地址成爲一個列表
– Dev