标签: asp.net-mvc-areas

如何在ASP.NET MVC3中配置区域

有谁知道如何在ASP.NET MVC3中配置区域.我在这里读了一篇关于区域的文章.但那篇文章并非基于MVC3.在MVC3没有命名的功能MapRootAreaRouteCollection 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中配置区域.任何类型的链接也会有所帮助.

c# asp.net asp.net-mvc asp.net-mvc-areas asp.net-mvc-3

36
推荐指数
2
解决办法
4万
查看次数

如何在不同的控制器中管理MVC区域和RenderAction?

我刚刚为我的项目添加了一个新的管理区域,因为它开始变得非常大,我想保持它的结构.

我有一个_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区域,它似乎没有此控制器的范围.

任何想法如何解决这个问题?

asp.net-mvc asp.net-mvc-areas razor

32
推荐指数
1
解决办法
1万
查看次数

ASP.NET MVC ActionLink外部区域

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)

如何创建从区域到默认控制器结构的链接?

asp.net-mvc asp.net-mvc-areas

30
推荐指数
1
解决办法
2万
查看次数

Asp.Net MVC的管理区域

我的问题可能很明显,但我想构建一个设计良好的Web应用程序.对于任何管理区域,管理员应该能够列出/创建/删除/修改用户,文章,帖子等...

我想知道设计应用程序的最佳方法是什么.我应该为每个项目(/ Users/Create/id或/ Posts/Delete/id)创建一个控制器,还是在我的管理控制器中创建所有操作(/ Administration/CreateUser/id或/ Administration/DeletePost/ID) ?

asp.net-mvc administration asp.net-mvc-areas

27
推荐指数
1
解决办法
9080
查看次数

ASP.NET帮助页面默认主页?

我想转到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

27
推荐指数
2
解决办法
1万
查看次数

MVC3何时使用区域?

我正在开发一个敏捷的MVC3项目,它开始变得相当大,特别是我的管理部分,用户可以设置很多配置等.这是我的第一个MVC3项目,所以我很好奇它什么时候使用区域有意义吗?

在决定将其分解为某个区域并为各个管理操作创建控制器之前,像管理这样的特定部分的控制器应该有多大?

此外,在使用区域时,我是否应该重构使用区域的所有内容,或仅针对需要区域的区域?

asp.net asp.net-mvc-areas asp.net-mvc-3

22
推荐指数
2
解决办法
7460
查看次数

如何在ASP.Net MVC 4中为特定区域定义布局?

当我从MVC2直接进入MVC4时,我在这里玩得很开心,所以一下子学习Razor和其他所有东西.

我在这个新应用程序中使用了一个管理区域,我注意到当我去管理区域的控制器时它没有任何布局.我尝试将_Layout.cshtml复制到该区域的共享视图文件夹中,但它仍然呈现没有布局.我尝试搜索,但无法找到有关如何设置用于某个区域的布局的任何信息.

我知道我可以在特定视图上执行此操作,但我想为整个区域设置一次

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-areas asp.net-mvc-4 razor-2

22
推荐指数
1
解决办法
1万
查看次数

MVC在区域内调用Html.Action?

我有一个名为"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 asp.net-mvc-areas asp.net-mvc-3

21
推荐指数
1
解决办法
1万
查看次数

ASP.NET MVC 2应用程序中的区域可以映射到子域吗?

有没有办法将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

19
推荐指数
2
解决办法
5127
查看次数

ASP.NET MVC3 - 单独程序集中的区域

我正在尝试使用区域设置MVC3解决方案,但我希望将我的区域放在不同的程序集中.例如,我想要一个包含母版页,样式表,脚本,登录页面等共享资源的父程序集.但我想在不同的程序集中使用不同的业务功能区域.

我尝试了为MVC2预览编写的示例:http: //msdn.microsoft.com/en-us/library/ee307987%28VS.100%29.aspx.(注意,我最初从这个Stack Overflow线程中找到了这个: ASP.NET MVC - 分离大型应用程序).但似乎MVC3没有将视图文件移动到主项目中的选项.我对使用嵌入式资源/ VirtualPathProvider选项并不感到高兴.

有关如何使用MVC3的任何建议?

谢谢,跳过

asp.net-mvc-areas asp.net-mvc-3

19
推荐指数
2
解决办法
9999
查看次数