ASP视区域和ActionLink
-
22-08-2019 - |
题
我工作的一个新项目中,我想用菲尔*哈克领域(1)思想+史蒂夫*桑德森的调整(2)条。我有一个简单的根景与行动的链接查看一区域(Foo).该网址是产生具有适当的地区,但它将根控制器(酒吧)的末尾。这是我根本看码:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Index</h2>
<%= Html.ActionLink("Foo Index Page", "Index", new { area="Foo" } )%>
</asp:Content>
这里是网址,它产生:
localhost:6494/Foo/吧
任何想法为什么"棒"是在那里?
(1): haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx
(2): blog.codeville.net/2008/11/05/app-areas-in-aspnet-mvc-take-2/
解决方案
我找到一个解决方案。我不认为这是适当的,所以我会要求改善。通过指定控制器名称,我能得到的URL,以形成正确的。即。
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Index</h2>
<%= Html.ActionLink("Foo Index Page", "Index", new { area="Foo", controller="Baz" } )%>
</asp:Content>
在我这样做,则URL是正确
本地主机:6494 /富
为什么这是一个问题?菲尔的演示使用名为HomeController的控制器。我不知道(因为我不能跟踪)的Html.ActionLink()方法如何去约构造URL;但它看起来好像它是依靠现有的HomeController的默认情况下,我没有。
如果任何人有关于如何允许不在家命名为默认的控制器的建议,请回复。感谢
其他提示
不有 Home
作为默认的控制器的名称、简单 更改默认的路线.
@Joe
在您的App_Start / RouteConfig.cs文件,你必须改变,无论你喜欢从首页默认控制器值:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "NAME_OF_YOUR_HOME_CONTROLLER", action = "Index", id = "" } // Parameter defaults
);
不隶属于 StackOverflow