asp.net-mvc - MVC 路由异常

标签 asp.net-mvc asp.net-mvc-routing asp.net-mvc-areas

大家好,我是 asp.net mvc 的新手,我正在通过构建常用的 mvc 模板来创建一个虚假的社交网站(用于学习目的)...我添加了一些 View 等,一切正常。但是,现在我已经添加了一个名为“Blog”的 mvc 区域,并添加了到主菜单的链接。现在,如果我单击任何菜单项,一切都会按预期进行 - 但是当我单击“博客”菜单项时, View 等会显示博客页面,但是其他 View 的菜单链接前面有/Blog/现在的网址!?不确定我是否做错了什么......这是我的菜单代码:

<div id="menucontainer">
                <ul id="menu">
                    @* @Html.ActionLink() Params = String Name, String Controller Name,
                    string Method (actionLink) Name *@
                    <li>@Html.ActionLink("Home", "Index", "Home")</li>
                    <li>@Html.ActionLink("Mail", "Index", "Mail")</li>
                    <li>@Html.ActionLink("Search", "Index", "Search")</li>
                    <li>@Html.ActionLink("Dating", "Index", "Dating")</li>
                    <li>@Html.ActionLink("Groups", "Index", "Groups")</li>
                    <li>@Html.ActionLink("Forums", "Index", "Board")</li>
                    <li>@Html.ActionLink("Blog", "Index", "Blog")</li>
                    <li>@Html.ActionLink("About", "About", "Home")</li>
                </ul>
            </div>

最佳答案

如果博客位于与其他区域不同的区域中,MVC 期望来自该区域的链接位于同一区域内,因此它将区域附加到您的 URL。如果它们位于不同的区域,则需要使用“区域”路由值调用 ActionLink。例如,如果“约会”位于“社交”区域,您可以使用:

@Html.ActionLink("Dating", "Index", new { controller = "Dating", area = "Social" } );

这里是来自What’s New in ASP.NET MVC 2的相关讨论:

“Area” is a now a reserved route-value key

The string “area” in Route values now has special meaning in ASP.NET MVC, in the same way that “controller” and “action” do. One implication is that if HTML helpers are supplied with a route-value dictionary containing “area”, the helpers will no longer append “area” in the query string.

If you are using the Areas feature, make sure to not use {area} as part of your route URL.

关于asp.net-mvc - MVC 路由异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5048387/

相关文章:

javascript - 如何在asp.net mvc的html.actionlink中调用javascript函数?

asp.net-mvc - WebAPI + Azure 网站 + 客户端网站 + SSL - 我需要多少个证书?

jquery - ASP.NET MVC3中通过Ajax.BeginForm上传文件

asp.net-mvc - ReturnUrl 指向 ActionResult

asp.net - 如何在 ASP.NET MVC 2.0 的区域内共享 View ?

asp.net-mvc - Kendo图表y轴标签问题

asp.net-mvc - 没有 Controller 或 Action 名称的 Asp.net mvc 路由

asp.net-mvc - 通过路由的 ASP.NET MVC 博客 URL

c# - 区域内的mvc5属性路由找不到 View

asp.net-mvc - 无参数构造函数、结构图、新区域