Tom*_*ino 17 asp.net-mvc-areas asp.net-mvc-4 asp.net-4.5
我尝试使用单独项目中的区域创建简单的概念验证ASP.NET MVC 4网站.
我尝试按照教程:http://bob.archer.net/content/aspnet-mvc3-areas-separate-projects(应用程序在虚拟目录中不起作用......我使用IIS).我希望有比虚拟目录更好的方法.
然后我尝试了这个教程:http: //forums.asp.net/t/1483660.aspx/1但是在区域项目的*.csproj中没有"AreasManifestDir"元素(并且得到错误"视图'索引'或其未找到master或视图引擎没有支持搜索的位置")
ASP.NET中是否仍然支持MVC 4?因为我发现这个答案可以在将来删除: 作为单个项目实现的区域与asp.net mvc中的多个项目有什么优缺点
我还没有找到任何关于MVC4的方法.
解决方案的结构很简单:
Solution 'MvcAreasMultiProject'
Areas [Directory]
Admin [Project]
Models
Views
Controllers
Routes.cs [Examples]
MvcAreasMultiProject [MainProject]
- References Admin project
M.V.C
Run Code Online (Sandbox Code Playgroud)
Admin项目的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" }
);
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
Dar*_*rov 27
您可以使用RazorGenerator包将Razor视图嵌入到单独的程序集中.以下是使这项工作的步骤:
Razor Generator
Visual Studio扩展(工具 - >扩展和更新...)AreasLibrary
(您还可以使用ASP.NET MVC项目模板以在Razor视图中获取Intellisense)RazorGenerator.Mvc
NuGet 安装到AreasLibrary
项目中.在AreasLibrary
项目中添加一个控制器(~/Areas/Admin/Controllers/HomeController.cs
):
public class HomeController: Controller
{
public ActionResult Index()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)添加相应的视图(~/Areas/Admin/Views/Home/Index.cshtml
):
@* Generator: MvcView *@
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>View1</title>
</head>
<body>
<div>
Index view
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)在视图的属性中设置Custom Tool
为RazorGenerator
.
在类库中添加一个~/Areas/AdminAreaRegistration.cs
:
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName { get { return "Admin"; } }
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_Default",
"Admin/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
}
}
Run Code Online (Sandbox Code Playgroud)剩下的就是引用主MVC应用程序中的类库.
参考:http://blog.davidebbo.com/2011/06/precompile-your-mvc-views-using.html
归档时间: |
|
查看次数: |
18268 次 |
最近记录: |