我正在構建一個狀態機,它根據某些動態值在頁面上顯示不同的動作控件(局部視圖)。ASP.NET MVC3以擴展方法編程導入視圖內容
我開始編寫HtmlHelper擴展方法來爲每個狀態輸出正確的html。喜歡的東西:
@if(Model.state == "NEW") {
Html.RenderActionEdit()
Html.RenderActionDelete()
}
而要做到這一點,我在做簡單的方法,形式:
return MvcHtmlString.Create("<form><input>..... </form>");
但是,這是HTML的大位相當麻煩。所以,問題是,是否可以在單獨的視圖(cshtml文件)上編寫這個Html,然後以某種方式加載它們並將結果傳遞給MvcHtmlString?像
return MvcHtmlString.Create(View.Load("EditAction.csthml"));
我找不到一種方法來加載現有的視圖,然後只是「包括」在部分方法的輸出。
非常感謝您的幫助!
嗯,我明白了,但是我不能從擴展方法調用Html.RenderPartial,因爲它是一個實例方法。我知道我可以直接從視圖中調用它們,但我想從擴展方法中嘗試它! – tggm 2011-03-28 01:05:49
@Tiago:嗯,你正在擴展HtmlHelper,對吧? – 2011-03-28 20:56:30
對不起,我不是很清楚。我將其標記爲已回答。我的問題是,我正在HtmlHelper之外編寫這些幫助器方法(即常規方法不是擴展方法)。正如你所指出的,我意識到這隻能作爲HtmlHelper的擴展。 – tggm 2011-03-29 01:37:22