问题标签 [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 回答
1006 浏览

asp.net-mvc - 如何在 ASP.NET MVC 中的当前区域之外使用 EditorTemplates

考虑一个有 2 个区域的项目。

/区域/博客 /区域/仪表板

现在假设我的博客区域有一个 SpecialBlog 类型的编辑器。/Areas/Blog/Views/Blog/EditorTemplates/SpecialBlog.ascx

如果我的仪表板区域中的视图想要显示一个特殊的博客怎么办?

以下代码适用于“博客”区域内的视图,但不适用于“仪表板”区域。

即使提供路径失败,

我能得到工作的一件事是

但是,SpecialBlog 中的任何路由都会失败。(即,它有自己的 Html.EditorFor 调用博客区域中的其他编辑器模板)。

我在做一些根本错误的事情吗?

0 投票
1 回答
910 浏览

asp.net-mvc - MVC 区域和 url 重写

我有一个名为 PlanningBoard 的区域,它有一个名为 PlanningBoardController 的控制器和一个视图in \areas\PlanningBoard\Views\PlanningBoard\Index.aspx

但是我的网址说;http://localhost:55736/PlanningBoard/PlanningBoard但我想说http://localhost:55736/PlanningBoard

我知道我一定错过了关于区域的一些相当大的观点,但我现在看不到它。

这里的任何帮助将不胜感激。

0 投票
2 回答
5109 浏览

asp.net-mvc-areas - 为什么 ASP.NET MVC3 区域和 Razor 视图会产生此错误?

'~/Areas/SomeArea/Views/List/Index.cshtml' 处的视图必须派生自 ViewPage、ViewPage、ViewUserControl 或 ViewUserControl。

项目结构几乎是默认的。有一个区域称为 SomeArea。它有一个名为 List 的控制器。它什么都不做,除了:

视图如下所示:

我曾尝试逐部分清空整个文件,但似乎没有任何帮助。如果我创建一个控制器并在该区域之外查看它就可以了。是否有可能默认的剃刀视图引擎目前不支持区域?

编辑:区域已注册。

0 投票
2 回答
1424 浏览

c# - 可以在 ASP.NET MVC 2 的区域级别[授权]?

在控制器和操作上[Authorize]添加属性以限制访问非常棒。

是否可以对 MVC 2 中的整个区域进行等效处理?在哪里可以根据角色/用户/中心位置的任何内容限制区域范围的访问,而不是在所有控制器中乱扔垃圾?

0 投票
1 回答
625 浏览

authentication - ASP.NET MVC2 应用程序中的第二层身份验证

我们有一个 ASP.NET 应用程序,它部分位于 MVC 中(其余部分是基于 webforms 的传统 CMS)。该应用程序通过 Forms Authentication 进行身份验证,尽管从一组特定 IP 地址访问它的任何用户都会自动分配给“特殊”用户。

我们目前有一个子应用程序,理想情况下我们希望将其作为一个区域引入(父)MVC 应用程序。此应用程序使用 Windows 身份验证作为第二层身份验证。是否有一种简单的方法可以保留第二层身份验证(可能通过第二个授权属性)?请记住,用户可以从用于特殊表单身份验证用户的 IP 地址集内部和外部登录此应用程序,这排除了直接表单身份验证。如果这可以提供更简单的解决方案,我们也不一定与第二层的 Windows 身份验证相关联。

0 投票
1 回答
532 浏览

asp.net-mvc - 在 ASP.NET MVC 2 路由的区域名称中添加斜杠

目前我在我的 ASP.NET MVC 2 项目中有一个名为“API”的区域,这是不言自明的。

随着我的 Web 应用程序 API 的成熟,我很快需要在我的地址中添加版本号。IE/

代替 :

http://site/API/

我需要

在 ASP.NET MVC (2) 中实现这一目标的最佳实践是什么?

我目前正在尝试使用 Area 调用Api_1_0并将其 MapRoute 修改为

但显然 URL 中的额外斜杠会导致运行时错误。

0 投票
1 回答
856 浏览

asp.net-mvc - 找不到可移植区域中的 ASP.NET MVC 部分

我正在尝试在视图中包含部分内容。partial 和 view 都在 MVC Portable Area 中。这是视图中的代码:

这是部分内容(名为 Here.ascx 并位于我的便携式区域的 Shared 文件夹中):

结果是:未找到局部视图“此处”。我也尝试过指定这个部分的相对路径,但没有运气。有任何想法吗?

0 投票
3 回答
3642 浏览

asp.net-mvc-2 - 获取与 MVC 项目关联的区域

有没有办法可以获取 MVC 项目中区域的名称?

以下是我能想到的几种方法:

a) 如果我有源,我可以浏览项目文件夹结构并枚举 Areas 文件夹下的文件夹。但这并不能保证所有文件夹都代表区域,除非我还枚举了每个子文件夹下的 Controllers 和 Views 文件夹。如您所知,这种方法很糟糕。

b) 从二进制文件中,我可以枚举所有符合条件的命名空间RootNamespaceOfProject.Areas.*

或者,我相信还有一种更优雅的方式。ASP.NET MVC 框架中必须有一些字典来记录所有区域。

其次,在 MVC 框架中是否还有一个程序化的构造来代表一个区域?我似乎找不到一个。只有四种结构与区域相关

如果有,是否有可能枚举该区域内的所有控制器?

已编辑

我刚刚注意到MVC-AreaRegistrationTypeCache.xml在文件夹 \Windows\Microsoft.NET\Framework\v4.xx\Temporary ASP.NET Files\root\RandomlyGeneratedHash1\RandomlyGeneratedHash2\UserCache 中有这个文件被调用。

该文件夹有两个文件:

a) MVC-AreaRegistrationTypeCache.xml:该文件包含机器上所有具有区域的程序集中的所有区域的列表。

b) MVC-ControllerTypeCache.xml:此文件列出程序集区域内的控制器。

现在,唯一要找出的是是否有某种编程方式让 MVC 框架读取这些文件并告诉我二进制文件中是否存在某个区域。

我在想这AreaRegistration门课可能是那个。进一步探索它...

0 投票
0 回答
150 浏览

visual-studio - 更改 MVC 2 项目的默认 Visual Studio 行为

我创建了一个带有嵌套区域的 MVC 2 项目,例如:

只要我将区域注册文件中的区域名称修改为“A/C”而不是简单的“C”,这就可以正常工作并正确找到所有控制器/视图。但是,Visual Studio 的默认行为不适用于此项目布局。如果我将操作方法​​添加到“A/C/Controllers”内的控制器,右键单击并选择“添加视图”,VS 会创建文件夹和文件“A/Views/{controller}/{action}.aspx” “A/C/Views/{controller}/{action}”。

有没有办法改变这种默认行为?也许创建一个覆盖默认行为的附加组件?我对 .NET 和 VS 2010 还很陌生,因此非常感谢任何帮助。

0 投票
2 回答
258 浏览

asp.net-mvc-2 - ASPNET MVC:我可以将一个位于给定区域(与根结构相反)的页面作为默认设置吗?

我如何以及在哪里配置我的应用程序,以便在它启动时,操作(因此要显示的页面)不在根结构中,而是在我选择的给定区域中?

假设,Action =“ IndexOfArticles ”,Controller =“ Articles ”,Area =“ News ”。我希望在启动应用程序时将此设置设为默认设置。

我研究过NewsAreaRegistration类并设置了上述配置。现在我怀疑,为了让它工作,我还需要对 Global.asx.cs 做一些事情,但我不知道该怎么做。

编辑

这就是我的意思

例如,上面的代码将导致应用程序以位于Home控制器中的Index动作开始执行。那不是我想要的。感谢您的帮助。