我有一个外部控制器的dll文件,因为external.dll存在于应用程序的bin文件夹中。
控制器的代码如下
namespace External.Controllers
{
public class ExternalController : Controller
{
public ViewResult CustomerView()
{
return View();
}
public ViewResult SupplierView()
{
return View();
}
}
}
如果我最初在global.asax文件中路由为
routes.MapRoute(
"Default", // Route name
"{controller}/{action}", // URL
new { controller = "External", action = "CustomerView" });
调用控制器方法并加载页面。
问题:我不希望最初将页面调用为默认页面,但是在用户请求的应用程序的后期阶段。 因此,当页面被称为/ External / CustomerView时,它无法找到该方法。 它抛出以下错误:
无法访问请求的页面,因为页面的相关配置数据无效。
我也试过这个
routes.MapRoute(
"Default", // Route name
"{controller}/{action}", // URL with parameters
new { controller = "Common", action = "Login" },
new[] { "External.Controllers" });
但它不起作用。
答案 0 :(得分:1)
您可以使用知道如何从程序集的嵌入资源中读取视图的VirtualPathProvider来完成此操作。请参阅http://weblogs.asp.net/ricardoperes/loading-asp-net-mvc-controllers-and-views-from-an-assembly。