问题标签 [asp.net-mvc-areas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
747 浏览

.net - ASP.NET MVC 2 中是否可以嵌套区域?

我想创建一个带有嵌套区域的项目结构。例如,我有一个“主页”区域,在此下方我想要处理它自己的路由注册的“新闻”区域,并且当路由指向“新闻”区域中的控制器时会正确找到视图。通过将“新闻”区域名称更改为“主页/新闻”而不是简单的“新闻”,可以找到正确的视图。在主 Global.asax.cs 中,我实例化所有区域(“Home”和“News”)并单独注册它们,因为 RegisterAllAreas() 函数只找到一层深的区域(即它只找到并注册“Home” “ 区域)。

有没有其他人尝试过类似的东西?这是一个重大的黑客攻击还是一个稳定的长期解决方案?非常感谢您提供的任何建议。

0 投票
1 回答
17589 浏览

asp.net-mvc - ASP.NET MVC ActionLink 外部区域

MVC 中的一项简单任务,有时会成为一项艰巨的挑战。

好吧,我有一个名为 Admin 的区域。我在该区域的 Shared 目录中有一个名为“Forbidden”的页面。

目标很简单:我需要创建一个Html.ActionLink ,它会生成一个链接以返回到位于管理区域之外的主页。

所以我尝试,<%= Html.ActionLink("Back","Index",new {controller="Home"})%>和它的生成:

它错了!我想要:

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

0 投票
1 回答
1368 浏览

asp.net-mvc-2 - 区域内的自定义路由

我在 MembersAreaRegistration 文件中有一个名为 Members 的区域和以下注册路线:

我希望能够映射以下 URL:

使用此路线注册,一切正常。但是,我添加了以下 URL:

我得到了错误:

“参数字典包含‘MyProject.Web.Mvc.Areas.Members’中方法‘System.Web.Mvc.ActionResult Index(Int32)’的不可为空类型‘System.Int32’的参数‘id’的空条目。 Controllers.ProfileController'。可选参数必须是引用类型、可空类型或声明为可选参数。”

我也想要网址

为了使所有这些 URL 正常工作,我应该修改什么?

0 投票
2 回答
65 浏览

asp.net - 现有的网络应用程序,想要添加“区域”,这会产生什么后果?

我有一个现有的 asp.net MVC 应用程序,我现在想添加“区域”。

这有什么后果?有什么陷阱吗?

0 投票
1 回答
1828 浏览

asp.net-mvc - ASP.Net MVC 2 区域:未找到部分视图“...”

我们最近将一个项目升级到 MVC 2,我们想使用 Areas,但有一个问题。

我们创建了一个新区域,设置了一个控制器,配置了一条路线,并在正确的位置创建了一个视图。当我们运行代码时,它成功地找到了路由并点击了控制器,但是当它渲染视图时出现了异常。

Web 表单视图引擎似乎没有在“区域”部分中查找视图。我们看到的错误是:

什么时候应该:

这表明它仍在以某种方式使用 MVC 1 dll,但我们仔细查看后只能找到对 MVC V2 的引用(在第三方 DLL xVal 中有 V1 引用,但修复它并没有区别)。

我只能想象我们在升级时错过了一些东西,或者我们遇到了一些不寻常的边缘情况,因为网络上似乎没有任何东西与我们遇到的问题相匹配。

我们可以看看哪些东西可以帮助我们解决这个问题?

提前感谢您提供的任何帮助。干杯,扎克

0 投票
1 回答
175 浏览

asp.net-mvc - Asp.Net MVC 虚拟区域

有这样的事吗?

我在同一个解决方案中有两个项目。

当我在 Visual Studio 中运行解决方案时,会启动两个单独的 localhost 实例。

项目 foo 可在http://localhost:3091获得

项目栏位于http://localhost:3094

我想访问 foo 中的项目 bar 例如:http://localhost:3091/bar/

从我对区域的研究来看,我似乎必须将 bar 项目重新创建为 foo 项目中的一个区域。

有没有办法做到这一点,例如使用虚拟区域而不必在区域内重新创建?

这是否可能,如果没有,实现此目的的正确方法是什么?

0 投票
2 回答
457 浏览

c# - 使用管理子站点进行路由的正确过程

我正在构建我的第一个 Asp.Net MVC2 站点,现在我正在尝试向该站点添加一个 /Admin 区域。

我不希望该区域对主要用户组可见,因此只有在您输入http://Intranet/Admin时才能访问

我拥有的是一个供普通用户使用的 NewsController,但我也想要一个 Admin NewsController,但我不确定如何设置类层次结构和文件夹,以便在添加视图时它们位于正确的位置。

在我添加的 Global.Asax.cs 中,路由正确解析。

在我设置的文件夹层次结构中

在控制器中

我面临的问题是,当我进入 Index 上的 admin/NewsController.cs 并添加视图时,它会尝试在 /News/Index.aspx 而不是 /Admin/News/Index.aspx 中创建它。

这是我的管理员新闻控制器 Controllers/Admin->Add->Controller 的代码

有什么我做错了,或者我应该改变什么,以便当我添加视图时,它们正在 /Admin/{area} 目录中创建。

0 投票
3 回答
1763 浏览

asp.net-mvc - Asp.Net MVC Ninject 和领域

我有一个使用 Ninject 进行依赖注入的站点,并且我在 Bootstrapper 类中定义了路由,如下所示:

我在项目中添加了一个区域,但默认的 AdminAreaRegistration 没有注册根

我在哪里或如何在 Ninject 注册区域?

0 投票
1 回答
236 浏览

asp.net-mvc-2 - MVC 2.0 - 基于具有共享控件的 URL 的不同视图

我有 2 个母版页。一个旨在显示在正常的独立网站中。另一种是在外部站点中用作 iframe。

我希望能够在 http://example.com/home/index 显示普通页面,在http://example.com/framed/home/index显示iframed 版本

我希望拥有可以回发到一个控制器的控件,这样我就不必复制逻辑,因此它们必须在普通版本和 iframed 版本中都可用。

我的问题是,当我尝试使用区域时,我无法让它们与默认 URL 一起正常工作。此外,我还增加了结构图的复杂性。当我尝试点击 /area/controller/action 时,我得到

IControllerFactory 'MySite.Web.Code.IoC.StructureMapControllerFactory' 没有返回名称为 'MyArea' 的控制器。

有谁知道如何使这种设置工作?实际上,我所做的只是尝试显示一组视图(如果它有 /Framed/controller/action),如果它没有 /framed 则显示另一组视图。我认为区域是要走的路,但也许不是。

0 投票
2 回答
969 浏览

c# - MVC 2.0、StructureMap、区域和重复的控制器名称

我有一点问题。我有一个叫做 Framed 的区域。这个区域有一个家庭控制器。该站点的默认设置还有一个家庭控制器。

我想要做的是有一个适合 IFrame 的每个控制器/动作的版本,以及一个普通站点的版本。我通过母版页执行此操作,并且站点母版页与框架版本相比具有许多不同的内容占位符。出于这个原因,我不能只是交换母版页。例如,http ://example.com/Framed/Account/Index将显示一个非常基本的版本,其中仅包含您的帐户信息,以便在外部站点中使用。 http://example.com/Account/Index将显示相同的数据,但在默认站点内。

我的 IoC 容器是结构图。所以,我找到了http://odetocode.com/Blogs/scott/archive/2009/10/19/mvc-2-areas-and-containers.aspxhttp://odetocode.com/Blogs/scott/archive/ 2009/10/13/asp-net-mvc2-preview-2-areas-and-routes.aspx。这是我目前的设置。

结构图初始化

这里我通过调试发现的问题是,因为控制器同名(HomeController),所以只注册了第一个,也就是默认的home控制器。我很有创意并附加了命名空间,以便它可以注册我所有的控制器。

默认路由

区域路线

根据Phil Haack的建议,我使用命名空间作为第四个参数

app start,只是为了证明初始化的顺序

控制器厂

因此,当我点击 /Home/Index 时,它会传入正确的控制器类型。当我点击 /Framed/Home/Index 时,controllerType 为空,这是因为没有返回控制器而出错。

就好像 MVC 完全忽略了我的领域。这里发生了什么?我究竟做错了什么?