动态检索UserControl的虚拟路径

时间:2009-12-02 03:48:22

标签: asp.net asp.net-mvc

我有一个应用程序将 FrontEnd 分成一个Project文件, Codebehind / classes 分成一个完全不同的类库。我需要的是一种方法,从UserControl Type获取它VirtualPath

通常,我们会在代码

中使用此功能
Board  uc = (Board)Page.LoadControl(@"~\Board.ascx");

但我想要的是这样的

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

OR

Board  uc =  Page.LoadControl(Board);

任何人都知道如何才能做到这一点?

提前致谢:)

1 个答案:

答案 0 :(得分:1)

非常确定MVC框架内的控件实现是不正确的。

我认为您正在尝试加载控件,而您可能会考虑使用PartialViews。

通常,在mvc land中,您可以执行<% Html.PartialView("PartialViewName", Model); %>

之类的操作

您可以使用WebFormViewEngine和PartialViewLocationFormats指定部分视图的共享位置等。

您也可以在视图中说出<% Html.PartialView("~/views/myController/PartialViewName", Model); %>

之类的内容

我没有看到或听说过任何人使用MVC应用程序中的LoadControl。

您也可以创建自己的HTML帮助程序以及Web控件,但这些都不会使用LoadControl。

听起来您正在尝试重新使用WebForms控件。我可能会将您的Web控件转换为HTML Helpers或WebControls。研究MVC Web控件。

Check out this link

Also this one gives more info