我有一个应用程序将 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);
任何人都知道如何才能做到这一点?
提前致谢:)
答案 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控件。