2011-08-24 113 views
1

我想繞着我的頭;也許這裏的某個人可以指引我走向正確的方向。HTML助手與HTML助手內

目前,一個有上有一些控制是這樣一種形式:

@Html.ListBoxFor(s => s.SomeListSelection1, new MultiSelectList(Model.SomeList1, "Id", "Text")) 
<br /> 
@Html.ListBoxFor(s => s.SomeListSelection2, new MultiSelectList(Model.SomeList2, "Id", "Text")) 
<br /> 
@Html.ListBoxFor(s => s.SomeListSelection3, new MultiSelectList(Model.SomeList3, "Id", "Text")) 
<br /> 

這種形式出現在許多地方與一些輕微的變化上的控制是可用的。

「輕微的變化」使我不僅僅想將其作爲局部視圖來使用,因爲我需要將控件複製到許多稍微變化的部分或將變體邏輯編碼到視圖中。

所以我想,「我知道,我會用很酷的HTML助手!」

但是,所有在線HTML幫手樣本都是非常簡單的html內容。所以問題是我如何在HTML幫助器中使用其他HTML幫助器?或者,如果這是一個錯誤的問題,是否有另一個更簡潔的替代方案,只是用一堆條件渲染邏輯做成局部視圖?

編輯: 雖然答案技術上沒有回答我的問題,我有麻煩,利用該博客文章的什麼,我要怎樣做。我發現了一個更好的例子(對我來說): ASP.NET MVC 3 Custom HTML Helpers- Best Practices/Uses

回答

1

是的,你可以。
助手可以包含任意Razor標記。

事實上,輔助方法的直接內容是代碼塊,而不是標記。
有關助手如何工作的更深入討論,請參閱my blog