2009-12-02 46 views
1

我與前端分隔成一個項目文件的應用程序,並分成完全不同的類庫代碼隱藏/班。我需要的是從UserControl Type獲得VirtualPath的方法。動態檢索用戶控件的虛擬路徑

通常情況下,我們有這樣的代碼

Board uc = (Board)Page.LoadControl(@"~\Board.ascx"); 

但我想是這樣的

Board uc = (Board)Page.LoadControl(Board.VirtualPath); 

OR

Board uc = Page.LoadControl(Board); 

任何人都有一個想法,我怎麼能做到這一點?

在此先感謝:)

回答

1

很確定您的MVC框架內控件的實現是不正確的。

我想你正試圖加載控件,而你可能會想到PartialViews。

通常情況下,在這裏MVC土地,你這樣做<% Html.PartialView("PartialViewName", Model); %>

您可以使用WebFormViewEngine AMD PartialViewLocationFormats指定的局部視圖等共享位置

您也可以從您的視圖這樣說<% Html.PartialView("~/views/myController/PartialViewName", Model); %>

我還沒有看到或聽說過任何人使用MVC應用程序中的LoadControl。

您也可以創建自己的HTML助手以及Web控件,但它們都不使用LoadControl。

聽起來就像您試圖重新使用您的WebForms控件。我可能會將您的Web控件轉換爲HTML助手或WebControls。研究MVC Web控件。

Check out this link

Also this one gives more info

+0

這不一定使用MVC框架,而是類似於web項目的MVC模式。就像我說的,頁面文件存在於一個項目中,而代碼隱藏文件和類文件存在於另一個項目中,該項目本身位於另一個目錄中。這就是爲什麼我把它標記爲MVC,但不一定在這裏使用MVC框架。 本質上,我需要能夠以某種方式引用Usercontrol的VirtualPath,因此我可以動態地將它加載到我的頁面上。任何想法我怎麼能做到這一點? – Kobojunkie 2009-12-02 05:09:28