有谁知道如何在ASP.NET MVC3中配置区域.我在这里读了一篇关于区域的文章.但那篇文章并非基于MVC3.在MVC3没有命名的功能MapRootArea在RouteCollection routes其中在Global.asax中被发现
routes.MapRootArea("{controller}/{action}/{id}",
"AreasDemo",
new { controller = "Home", action = "Index", id = "" });
Run Code Online (Sandbox Code Playgroud)
当我使用MVC3创建一个新区域时,我得到了一个继承自AreaRegistration以下区域的类:(这里的博客是区域名称)
public class BlogsAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Blogs";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Blogs_default",
"Blogs/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
Run Code Online (Sandbox Code Playgroud)
有谁请帮助我如何在MVC3中配置区域.任何类型的链接也会有所帮助.
我刚刚为我的项目添加了一个新的管理区域,因为它开始变得非常大,我想保持它的结构.
我有一个_ViewStart.cshtml视图,它设置一个共享布局页面,包括一个菜单和一个包含一些用户信息的部分.因为没有在我的区域页面上添加,我已经将_ViewStart文件添加到我的区域.
此文件将布局设置为"〜/ Views/Shared/_Layout.cshtml",它位于我的Admin区域之外.但是,_Layout文件包含一个RenderAction()方法,该方法在控制器上调用Child动作方法进行渲染.问题是该区域似乎没有此控制器的可见性,因此抛出以下异常:
The controller for path '/Admin/LeadOrigin' was not found or does not implement IController.
Run Code Online (Sandbox Code Playgroud)
它发生的地点在这里:
Line 70: <div id="logindisplay">
Line 71: @{
Line 72: Html.RenderAction("UserInfo", "Account");
Line 73: }
Line 74: </div>
Run Code Online (Sandbox Code Playgroud)
上面的RenderAction()正常工作,因为Account控制器在视图的范围内,而在Admin区域,它似乎没有此控制器的范围.
任何想法如何解决这个问题?
MVC中的一项简单任务有时会成为一项艰巨的挑战.
好吧,我有一个名为Admin的区域.我在这个区域的Shared目录中有一个名为"Forbidden"的页面.
目标很简单:我需要创建一个Html.ActionLink,它生成一个链接以返回主页,该主页位于Admin区域的外部.
所以,我尝试,<%= Html.ActionLink("Back","Index",new {controller="Home"})%>并生成:
http://localhost/Admin/Home/Index
Run Code Online (Sandbox Code Playgroud)
错了!我想:
http://localhost/Home/Index
Run Code Online (Sandbox Code Playgroud)
如何创建从区域到默认控制器结构的链接?
我的问题可能很明显,但我想构建一个设计良好的Web应用程序.对于任何管理区域,管理员应该能够列出/创建/删除/修改用户,文章,帖子等...
我想知道设计应用程序的最佳方法是什么.我应该为每个项目(/ Users/Create/id或/ Posts/Delete/id)创建一个控制器,还是在我的管理控制器中创建所有操作(/ Administration/CreateUser/id或/ Administration/DeletePost/ID) ?
我想转到http://myserver并能够将帮助页面作为默认主页,因此访客http://myserver应首先看到的是帮助页面.
我有一个默认路由设置如下:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
然后我的帮助页面区域注册设置如下:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"HelpPage_Default",
"doc/{action}/{apiId}",
new { controller = "Help", action = "Index", apiId = UrlParameter.Optional });
HelpPageConfig.Register(GlobalConfiguration.Configuration);
}
Run Code Online (Sandbox Code Playgroud)
当我改变RouteConfig时controller,"Help"我得到:
未找到视图"索引"或其主数据或视图引擎不支持搜索的位置
当我将帮助页面路由更改为"{controller}/{action}/{apiId}"我的AttributeRoutes时停止工作.
是否有一些简单的方法来使ASP.NET帮助页面成为默认主页?
asp.net-mvc-areas asp.net-mvc-4 attributerouting asp.net-web-api-helppages
我正在开发一个敏捷的MVC3项目,它开始变得相当大,特别是我的管理部分,用户可以设置很多配置等.这是我的第一个MVC3项目,所以我很好奇它什么时候使用区域有意义吗?
在决定将其分解为某个区域并为各个管理操作创建控制器之前,像管理这样的特定部分的控制器应该有多大?
此外,在使用区域时,我是否应该重构使用区域的所有内容,或仅针对需要区域的区域?
当我从MVC2直接进入MVC4时,我在这里玩得很开心,所以一下子学习Razor和其他所有东西.
我在这个新应用程序中使用了一个管理区域,我注意到当我去管理区域的控制器时它没有任何布局.我尝试将_Layout.cshtml复制到该区域的共享视图文件夹中,但它仍然呈现没有布局.我尝试搜索,但无法找到有关如何设置用于某个区域的布局的任何信息.
我知道我可以在特定视图上执行此操作,但我想为整个区域设置一次
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
Run Code Online (Sandbox Code Playgroud) 我有一个名为"Admin"的AREA
它使用与我网站其余部分相同的布局页面.在我的布局页面中
@Html.Action("MyMethod", "MyController", null)
Run Code Online (Sandbox Code Playgroud)
MyController 不在 Admin区域,但是当我转到AREA旁边的任何页面时,在root/controllers文件夹中我得到以下execption
"路径'/ admin/home'的控制器未找到或未实现IController"
有没有办法将ASP.NET MVC 2应用程序中的区域映射到子域,例如
movies.example.com/Theater/View/2
代替
example.com/Movies/Theater/View/2
其中{area ="Movies",controller ="Theatre",action ="View",id = 2}.
asp.net subdomain asp.net-mvc asp.net-mvc-routing asp.net-mvc-areas
我正在尝试使用区域设置MVC3解决方案,但我希望将我的区域放在不同的程序集中.例如,我想要一个包含母版页,样式表,脚本,登录页面等共享资源的父程序集.但我想在不同的程序集中使用不同的业务功能区域.
我尝试了为MVC2预览编写的示例:http: //msdn.microsoft.com/en-us/library/ee307987%28VS.100%29.aspx.(注意,我最初从这个Stack Overflow线程中找到了这个: ASP.NET MVC - 分离大型应用程序).但似乎MVC3没有将视图文件移动到主项目中的选项.我对使用嵌入式资源/ VirtualPathProvider选项并不感到高兴.
有关如何使用MVC3的任何建议?
谢谢,跳过