2014-04-03 34 views
0

我想在MVC3中創建一個自定義控件。例如控件名稱AddressTextFor,它應該具有多個屬性,如街道,城市,州&國家。有了這些信息,我希望能夠調用自定義控制,如:在MVC3中創建複合自定義控件

@Html.AddressTextFor(m=>new {m.Street,m.City,m.State,m.Country},new {@Id='',@class=''}) 

我嘗試了一些代碼,如下圖所示,但我不知道如何強制類型轉換表達式的值來閱讀上面提到的特性。

public static MvcHtmlString AddressTextFor"<"TModel,TProperty">"(this HtmlHelper"<"TModel">" helper,Expression<Func"<"TModel,TProperty">">" expression) 
{ 

} 

我不想爲此用戶部分查看,請幫助。

+0

你想用'Html.AddressTextFor'顯示什麼? –

回答

0

達到這一目的的最簡單的方法,是使用EditorTemplatesDisplayTemplates

一個編輯器模板,就像一個部分視圖,強類型...你設置你的HTML和輸入。

這個編輯器應該位於Views - > Shared - > EditorTemplates文件夾中。 編輯器的名稱,應該是你要處理的類型的名字,你的情況:YourAddress

然後,使用這樣的:@Html.EditorFor(Model.Address) //是類型YourAddress的地址。

你也可以使用它:@Html.EditorFor(Model.Address, "OtherEditorName") //這讓你有多個相同類型的編輯器。

然後,如果您想要顯示地址信息...您可以使用與編輯器相同的邏輯...但將視圖放在DisplayTemplates文件夾中。