问题标签 [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.
.net - ASP.NET MVC 2 中是否可以嵌套区域?
我想创建一个带有嵌套区域的项目结构。例如,我有一个“主页”区域,在此下方我想要处理它自己的路由注册的“新闻”区域,并且当路由指向“新闻”区域中的控制器时会正确找到视图。通过将“新闻”区域名称更改为“主页/新闻”而不是简单的“新闻”,可以找到正确的视图。在主 Global.asax.cs 中,我实例化所有区域(“Home”和“News”)并单独注册它们,因为 RegisterAllAreas() 函数只找到一层深的区域(即它只找到并注册“Home” “ 区域)。
有没有其他人尝试过类似的东西?这是一个重大的黑客攻击还是一个稳定的长期解决方案?非常感谢您提供的任何建议。
asp.net-mvc - ASP.NET MVC ActionLink 外部区域
MVC 中的一项简单任务,有时会成为一项艰巨的挑战。
好吧,我有一个名为 Admin 的区域。我在该区域的 Shared 目录中有一个名为“Forbidden”的页面。
目标很简单:我需要创建一个Html.ActionLink ,它会生成一个链接以返回到位于管理区域之外的主页。
所以我尝试,<%= Html.ActionLink("Back","Index",new {controller="Home"})%>
和它的生成:
它错了!我想要:
如何创建从区域到默认控制器结构的链接?
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 正常工作,我应该修改什么?
asp.net - 现有的网络应用程序,想要添加“区域”,这会产生什么后果?
我有一个现有的 asp.net MVC 应用程序,我现在想添加“区域”。
这有什么后果?有什么陷阱吗?
asp.net-mvc - ASP.Net MVC 2 区域:未找到部分视图“...”
我们最近将一个项目升级到 MVC 2,我们想使用 Areas,但有一个问题。
我们创建了一个新区域,设置了一个控制器,配置了一条路线,并在正确的位置创建了一个视图。当我们运行代码时,它成功地找到了路由并点击了控制器,但是当它渲染视图时出现了异常。
Web 表单视图引擎似乎没有在“区域”部分中查找视图。我们看到的错误是:
什么时候应该:
这表明它仍在以某种方式使用 MVC 1 dll,但我们仔细查看后只能找到对 MVC V2 的引用(在第三方 DLL xVal 中有 V1 引用,但修复它并没有区别)。
我只能想象我们在升级时错过了一些东西,或者我们遇到了一些不寻常的边缘情况,因为网络上似乎没有任何东西与我们遇到的问题相匹配。
我们可以看看哪些东西可以帮助我们解决这个问题?
提前感谢您提供的任何帮助。干杯,扎克
asp.net-mvc - Asp.Net MVC 虚拟区域
有这样的事吗?
我在同一个解决方案中有两个项目。
当我在 Visual Studio 中运行解决方案时,会启动两个单独的 localhost 实例。
项目 foo 可在http://localhost:3091获得
和
我想访问 foo 中的项目 bar 例如:http://localhost:3091/bar/
从我对区域的研究来看,我似乎必须将 bar 项目重新创建为 foo 项目中的一个区域。
有没有办法做到这一点,例如使用虚拟区域而不必在区域内重新创建?
这是否可能,如果没有,实现此目的的正确方法是什么?
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} 目录中创建。
asp.net-mvc - Asp.Net MVC Ninject 和领域
我有一个使用 Ninject 进行依赖注入的站点,并且我在 Bootstrapper 类中定义了路由,如下所示:
我在项目中添加了一个区域,但默认的 AdminAreaRegistration 没有注册根
我在哪里或如何在 Ninject 注册区域?
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 则显示另一组视图。我认为区域是要走的路,但也许不是。
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.aspx和http://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 完全忽略了我的领域。这里发生了什么?我究竟做错了什么?