问题标签 [asp.net-mvc-3-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 投票
1 回答
1189 浏览

asp.net-mvc-3 - MVC 3渲染区域中的部分

我正在尝试从我的自定义区域呈现在 _layout 文件中定义的部分。

在我所在的地区,我有 _ViewStart 指向根站点中的 _layout。

我尝试使用的部分在 head 标签中,但在我的区域中,它放在 body 中。

在根级别呈现的页面可以正常工作。

~/Views/Shared/_Layout.cshtml

~/Areas/UserMedia/Views/_ViewStart.cshtml

~/Areas/UserMedia/Views/ManageProjectMedia.cshtml

0 投票
1 回答
195 浏览

asp.net-mvc-3 - MVC3 在区域中找不到视图

我的项目中有一个区域(用于管理员)。

我希望能够在管理区域中使用名为 Index.cshtml 的视图,但我的应用程序始终显示主项目的 Index.cshtml 视图(不在单独的区域中)。

如果我将管理区域中的视图名称更改为其他任何地方都不存在的名称,则它可以正常工作。

我错过了什么?这一定很简单!

回答(可能)

有点神秘,但似乎可能存在某种奇怪的缓存问题。我重新启动了 Web 服务器,现在它工作正常。

感谢所有回复的人

0 投票
2 回答
1376 浏览

asp.net-mvc-3 - 路由 - 带参数的区域控制器/视图

超级简单的 MVC 站点,带有一个区域来处理移动设备。除了需要参数的视图外,我所有的区域路由都可以正常工作。

在“正常”站点中,我有一个需要参数的查看视频页面。

mysite.com/Video/123456

这完美地工作。在我的区域为移动内容进行了一些斗争之后,我什至开始在我的控制器和视图中使用完全相同的代码/标记。所以我希望以下网址:

mysite.com/Mobile/Video/123456

会妥善解决。它没有。我得到一个 404(未找到)。如果我关闭参数:

mysite.com/Mobile/Video

它可以正确解决。

我确信这一定是我在路由中做错了。以下是我的 global.asax 中的相应部分。任何帮助,将不胜感激。

0 投票
2 回答
119 浏览

asp.net-mvc-3 - 关于如何在 MVC3 中完成特定功能的建议

我有一个 MVC3 应用程序,基于 VS 2010 的默认布局,我将其更改为如下图所示

布局1

子菜单区域在 _layout.cshtml 中定义为

_EntitiesMenu 包含以下条目

我有一个 MapRoute 定义为

我从菜单开始的所有实体控制器都在控制器中定义标准,在视图中定义视图。

我需要的是更改应用程序以使用如下布局

布局2

当用户单击实体时,应用程序应该导航到 myapp/entities/ 或 myapp/entities/index,它应该在主工作区打开一个视图,如下所示

布局3

然后当用户点击右侧子菜单时,url 应该看起来像 myapp/entities/entity1/index、myapp/entities/entity1/edit/1 等(就像现在一样,但是“在”实体页面下。
我定义了实体控制器,如

它的视图看起来像

我不想对实体控制器或视图进行更改(如果绝对必要,也可以进行最小的更改,因为它们有很多)。我可以在实体范围内以某种方式将该区域指定为主体吗?如果用户点击顶部主页/关于,它会从_layout.cshtml“卸载”实体视图?

不知道我的问题是否很清楚,但我希望有人能理解我所追求的。

谢谢

0 投票
1 回答
4257 浏览

asp.net-mvc-3 - ASP.NET MVC 3 区域和 web.config 中的多重身份验证

我一直在尝试关注此博客以使区域正常工作:

http://mstechkb.blogspot.com/2010/10/areas-in-aspnet-mvc-20.html

在博客文章中,它确定了为每个区域设置身份验证的能力,例如:

但是,当我尝试在 Visual Studio 2010 的新项目中创建它时,运行时出现以下错误:

在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的部分是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。

据我所知,这是因为您无法指定身份验证元素,除非它位于顶级 web.config 中。

所以可以按照博文所说的去做吗?您可以在 web.config 的 Location 元素中包含带有身份验证元素的区域吗?

0 投票
2 回答
1042 浏览

asp.net-mvc - ASP.NET MVC] 路由匹配但控制器从未调用。-> 404

大家好,我对 MVC3 路由和区域有疑问:

我的路线匹配但从未调用控制器,而是收到 404 错误。

我已经设置了一个带有 2 个项目的 MVC3 解决方案:

  • 一是主力MVC项目:CityServices
  • 一个区域:CityServices.Demo

项目设置

在我所在的地区,我注册了以下路线:

StuffController.cs 的内容:

我在主项目中注册区域:

我的路线匹配:http://host/Test 但我总是收到 404 错误。

有任何想法吗?

谢谢, - 杰里米

编辑:这是路线匹配的证明:

在此处输入图像描述

找到解决方案

所以总结一下。 我的 AreaRegistration 继承类与我的控制器不在同一个命名空间中。 由于我没有任何视图(它只是一个安静的 websvc),我不必使用 MvcContribs,当您在与主站点不同的项目中拥有视图和控制器时,这似乎很有用。

如果您解决这个问题,希望这会有所帮助;)

0 投票
1 回答
723 浏览

asp.net-mvc-3-areas - MVC3-RedirectToAction 中的区域未按预期工作

我有一个叫做覆盖的区域。路由就像

当我访问页面 Mysite/Coverage/Summary/10 时,它会显示一个页面。美好的。但是在一个动作方法中,我有如下代码

但这没有加载页面 Mysite/Coverage/Summary/10 。它显示404错误。如果我仍然刷新页面它会给出 404。但是如果我在地址栏中剪切并过去相同的 url 并按 enter 它可以工作

可能是什么原因

0 投票
2 回答
583 浏览

c# - 在同一控制器中将字符串从一个动作传递给另一个动作

我将搜索字符串从搜索操作传递到详细操作,但在收到详细操作时结果为空。

我正在使用 MVC3 和 .NET 框架 4.0:

0 投票
1 回答
858 浏览

asp.net-mvc-3 - MVC3区域+授权属性+角色奇怪问题

我真的不知道应该用什么标题来描述我的问题。为了简化我的问题。这是我的测试。我从头开始创建一个 mvc3 站点。然后我添加名为“admin”的区域。在 admin 内部,我有一个名为“Search”的控制器,并装饰了“Authorize”属性。然后我更改了我的 Global.ascx.cs 路由设置以附加我的控制器命名空间。现在我开始我的测试。

问题 1

当我访问http://localhost:xxx/Search页面时,它会将我重定向回 /Account/Logon 页面,这让我首先感到困惑,为什么它会将我重定向到登录页面?据我了解,它根本不应该到达管理员搜索控制器。如果我删除了 Authorize 属性,它会显示黄色屏幕,说找不到我预期的视图。

问题2

如果我添加带有角色的授权属性,例如(Roles="Admin"),那么我会再次尝试访问搜索页面,无论登录成功与否,我总是会重定向回登录页面。为什么它不给我黄屏,因为我试图在主站点而不是管理区域请求搜索控制器索引视图。很困惑。

我是 MVC 开发的新手,有人可以为我的问题提供解决方案吗?

谢谢

全球.ascx.cs

0 投票
1 回答
712 浏览

asp.net-mvc-3 - 在 ASP.NET MVC 领域中使用 StructureMap

我将 StructureMap 用于 IoC,它适用于常规控制器,但我无法使其与区域一起使用。我AccountController在管理区有以下内容:

这是错误:

System.InvalidOperationException: An error occurred when trying to create a controller of type 'Foo.Areas.Administration.Controllers.AccountController'. Make sure that the controller has a parameterless public constructor. ---> System.MissingMethodException: No parameterless constructor defined for this object.

任何帮助将不胜感激!

编辑

StructureMap无法解决MembershipProvider
这是解决方案: