asp.net-mvc – ASP MVC区域和ActionLink

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ASP MVC区域和ActionLink前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在一个新项目,我想使用Phil Haack Areas(1)的想法Steve Sanderson的调整(2).我有一个简单的根视图与动作链接到一个区域(Foo).生成的URL具有正确的区域,但是它将根控制器(Bar)附加到最后.这是我的根视图代码
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Index</h2>

<%= Html.ActionLink("Foo Index Page","Index",new { area="Foo" } )%>

</asp:Content>

这是它产生的URL:

本地主机:6494 /美孚/酒吧

任何想法为什么“/ Bar”在那里?

(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的形式. I.E.
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Index</h2>

<%= Html.ActionLink("Foo Index Page",new { area="Foo",controller="Baz" } )%>

</asp:Content>

一旦我这样做,那么URL是正确的

本地主机:6494 /美孚

为什么这是一个问题? Phil的演示使用名为HomeController的控制器.我不知道(因为我无法追踪)Html.ActionLink()方法是如何构造URL的;但它看起来好像是依赖于我没有的HomeController存在的默认情况.

如果有人建议如何让未命名的控制器为默认,请回复.谢谢

猜你在找的asp.Net相关文章