我希望能够在多个MVC项目中的一个MVC项目中重用一个区域。我可以将我的区域放在一个类库中,以后可以在新的MVC项目中重用吗?
谢谢,
答案 0 :(得分:4)
没有开箱即用。您可以查看使用自定义MVCContrib Portable Areas的VirtualPathProvider,以便将区域作为资源嵌入到单独的程序集中。如果您使用的是ASP.NET MVC 3,还可以查看following blog post。
答案 1 :(得分:0)
您可以在库中拥有AreaRegistration
类和Controllers
。 ASP.NET MVC运行时将自动注册它们。
但是视图需要位于以下任何位置:
或者您可以通过在注册View Engine时设置它们来自己指定它们:
var viewEngine = new RazorViewEngine {
AreaViewLocationFormats = new[] { "~/MySharedAreas/{2}/Views/{1}/{0}.cshtml" }
};
2是区域名称,1是控制器名称,0是操作名称。
这取决于目的。如果你只是想重用控制器,这个方法会起作用,但如果你想重用视图,那么你必须使用Dimitri提到的解决方案