Tag: asp.net mvc areas

具有共享布局的ASP.NET MVC区域

我在ASP.NET MVC 3应用程序中定义了一个区域(Admin),在该区域创build了_ViewStart.cshtml并添加了Layout = "~/Views/Shared/_Layout.cshtml"; 要有一个统一的网站布局。 我还将以下代码添加到_Layout.cshtml : if (HttpContext.Current.User.IsInRole("Admin")) { <li>@Html.ActionLink("Items List", "Index", "Items", new { area = "Admin" }, null)</li> } Admin区域显示正确_Layout.cshtml作为其布局。 但是页面中的所有导航链接都指向Admin子文件夹。 例如,在我的布局中,我有<li>@Html.ActionLink("About Us", "About", "Home")</li> ,它指向Mysite/Home/About 。 但点击pipe理链接后,“关于我们”链接指向/Admin/Home/About 。 我应该怎么做_Layout.cshtml链接指向正确的地址? 谢谢。

如何在ASP.NET MVC3中configuration区域

有谁知道如何在ASP.NET MVC3configuration区域。 我在这里读了一篇关于地区的文章。 但那篇文章不是基于MVC3的。 在MVC3中,在Global.asax中找不到RouteCollection routes名为MapRootArea函数 routes.MapRootArea("{controller}/{action}/{id}", "AreasDemo", new { controller = "Home", action = "Index", id = "" }); 当我使用MVC3创build一个新区域时,我得到了一个从AreaRegistrationinheritance的区域的类,如下所示:(这里的Blogs是区域名称) 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 […]

“区域”之间的ASP.NET MVC`Html.ActionLink`

我已经添加了一个新的区域到我的MVC3项目,我试图从_Layout页面链接到新的区域。 我添加了一个名为“Admin”的区域,其中有一个控制器“Meets”。 我使用了视觉工作室devise师来添加区域,使其具有正确的区域注册类等,并且global.asax文件正在注册所有区域。 但是,当我在根的页面中使用以下两个操作链接时,遇到了一些问题: @Html.ActionLink("Admin", "Index", "Meets", new { area = "Admin" }, null) @Html.ActionLink("Admin", "Index", "Meets", new { area = "" }, null) 当点击两个链接时,我被带到pipe理区域的Meets控制器,然后应用程序继续抛出一个错误,指出它找不到索引页面(即使索引页面出现在区域子视图的Views文件夹中,目录。 第一个链接的href看起来像这样: http://localhost/BCC/Meets?area=Admin 而第二个链接的href看起来像这样: http://localhost/BCC/Meets 另外,如果我点击了我期望创build的链接: http://localhost/BCC/Admin/Meets 我只是得到一个资源无法find的错误。 所有非常复杂! 我希望有人能帮帮忙…

没有find'索引'或其主人的观点。

The view 'Index' or its master was not found. The following locations were searched: ~/Views/ControllerName/Index.aspx ~/Views/ControllerName/Index.ascx ~/Views/Shared/Index.aspx ~/Views/Shared/Index.ascx 使用ASP.Net mvc区域时出现此错误。 区域控制器操作被调用,但它似乎在“基础”项目视图中而不是在区域视图文件夹中寻找视图。

我们如何在ASP.NET MVC中设置整个区域的授权?

我有一个pipe理员区域,我只想要pipe理员进入该区域。 我考虑将“授权”属性添加到“pipe理”区域中的每个控制器。 是不是有一个优雅的解决scheme,或者这个function没有在框架本身? 编辑:对不起,我应该提前这个。 我正在使用派生自AuthorizeAttribute的自定义AuthorizedAttribute。

path控制器未find或未实现IController

我有一个MVC4项目的语言select: 恩 NL FR 德 1主要部分: 关于 常见(菜单) 联系 常问问题 家 和3个方面: pipe理员 顾客 店 在每个区域,我至less有一个控制器,例如在pipe理员我有控制器概述与相应的视图文件夹概述 ,其中包含一个index.aspx页面。 主页和所有的主页(关于,常见问题等)工作,可以访问)。 但是,当我按照url:localhost:xxxx / en / admin / overview我得到错误 path'/ en / admin / overview'的控制器未find或未实现IController。 即使路由是正确的(我可以看到这个与路由debugging器)。 错误页面还显示,当我想要加载我的主菜单项时,错误被抛出: <nav id="site-navigation" class="eightcol"> @Html.Action("MenuItems", "Common") </nav> – 因为不相关的代码被删除 – 一切似乎都是为了顺序,但MVC似乎无法加载位于主要部分的菜单。 所以,问题的根源在于:我可以在我的项目的主要部分(主页,公用,关于等)授予一个区域(例如Admin)访问控制器吗?

强制所有区域使用相同的布局

我有以下项目结构: /查看/共享/ _layout; /地区/区域1 /浏览/ ControllerName /指数; … /地区/ AreaN /浏览/ ControllerName /索引。 有没有办法强制所有地区使用_Layout作为基本布局 ? 有没有办法做到这一点,而不需要添加_ViewStart文件(例如,通过路由configuration)? 也可以看看: 如何在ASP.NET MVC 3razorViewStart文件中指定不同的布局?

在我的项目中遇到同名多个控制器的问题

我遇到了我的ASP.NET MVC 3项目的以下错误: 发现多个与名为“Home”的控制器相匹配的types。 如果为该请求提供服务的路由(“主页/ {操作} / {id}”)没有指定命名空间来search与该请求匹配的控制器,则会发生这种情况。 如果是这种情况,请通过调用带有“namespaces”参数的“MapRoute”方法的重载来注册此路由。 “家”的请求find了以下匹配的控制器:MyCompany.MyProject.WebMvc.Controllers.HomeController MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController 我有一个HomeController在我的默认控制器文件夹中,类名称为MyCompany.MyProject.WebMvc.Controllers.HomeController。 我的RegisterRoutes方法,在我的global.asax,如下所示: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults ); } 然后我有一个名为Company的区域,在该区域的默认控制器文件夹中有一个HomeController,其类名为MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController。 CompanyAreaRegistration文件中的RegisterArea方法如下所示: public override void RegisterArea(AreaRegistrationContext context) { […]

区域之间的RedirectToAction?

有没有办法redirect到不同区域的特定行动/控制器?

如何在动作链接中指定区域名称?

我有一个共享的母版页,我在我的mvc 2应用程序中从2个不同的区域使用。 母版页有一个动作链接,当前指定了控制器和动作,但当然如果我在错误的区域,链接不起作用。 我看到没有超载的actionlink需要一个区域参数,有没有可能做?