我尝试使用不同项目中的区域来创建简单的概念验证ASP.NET MVC4网站。
我尝试了以下教程:http://bob.archer.net/content/aspnet-mvc3-areas-separate-projects (应用程序不能在虚拟目录中工作...我使用IIS)。我希望有比虚拟目录更好的方法。
然后我尝试了这个教程:http://forums.asp.net/t/1483660.aspx/1,但在area项目的索引中没有"AreasManifestDir“元素(并得到错误”视图‘索引’或其主视图未找到或没有视图引擎支持搜索的位置“)
在ASP.NET中是否仍然支持MVC4?因为我找到了这个答案,将来可以将其删除:What are the pros and cons of Areas implemented as single projects vs multiple projects in asp.net mvc
我还没有找到任何关于MVC4的方法。
解决方案的结构很简单:
Solution 'MvcAreasMultiProject'
Areas [Directory]
Admin [Project]
Models
Views
Controllers
Routes.cs [Examples]
MvcAreasMultiProject [MainProject]
- References Admin project
M.V.C
管理项目的Routes.cs:
namespace Admin
{
public class Routes : AreaRegistration
{
public override string AreaName { get { return "Admin"; } }
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_Default",
"Admin/{action}/{id}",
new { controller = "Admin", action = "Index", id = "" },
new[] { "Admin.Controllers" }
);
}
}
}
谢谢你的帮助!
发布于 2012-10-16 18:03:22
您可以使用RazorGenerator包将Razor视图嵌入到单独的程序集中。下面是实现这一点的步骤:
Razor Generator
Visual Studio扩展(工具和扩展,并使用空模板Updates...)AreasLibrary
的新类库项目添加到解决方案中(您也可以使用ASP.NET MVC项目模板,以便在Razor views)RazorGenerator.Mvc
NuGet to AreasLibrary
项目中获得智能感知。<代码>H114在<代码>D15项目中添加控制器(<代码>D16):
公共类HomeController: Controller {公共ActionResult索引(){ return View();}}
~/Areas/Admin/Views/Home/Index.cshtml
):@* RazorGenerator
.
Custom Tool
设置为布局类库添加一个~/Areas/AdminAreaRegistration.cs
:公共类AdminAreaRegistration : AreaRegistration { public override string AreaName { get { return "Admin";}} public override void (AreaRegistrationContext context) { context.MapRoute( "Admin_Default",“Admin/{AdminAreaRegistration}/{ id }”,AreaRegistration{ controller = "Home",AreaName= "Index",id= "“} );}}
中的类库了
参考:http://blog.davidebbo.com/2011/06/precompile-your-mvc-views-using.html
发布于 2019-12-04 06:18:57
在我的例子中,我已经完成了上面Darin建议的第9步之外的所有步骤:
剩下的工作就是引用
应用程序中的类库了。
该解决方案不需要引用即可编译,因此我忽略了它。但是,在运行时,系统无法正确路由请求。只是提醒一下,以防其他人忽略了这一点。
https://stackoverflow.com/questions/12911006
复制相似问题