不明确的路线排序

时间:2013-04-30 06:07:41

标签: asp.net-mvc routes

我有两条不明确的路线,都在同一个MVC区域内:

Default
{controller}/{action}/{id}
controller = "Home"
action     = "Index"
id         = Optional

SettingsRoute
Settings/{controller}/{action}
action     = "Index"

我希望MVC默认使用Default路由,当路由按照上面指定的顺序时,它会这样做。所以这......

Controller: WelcomeController
Action: Login

using( Html.BeginForm() ) { }

...导致此HTML

<form action="/Welcome/Login" method="post"></form>

到目前为止,非常好。

然而,当我有一个看起来像这样的锚:

<a href="Settings/AppSettings">Application settings</a>

...它被Default路由捕获为Controller = Settings, Action = AppSettings而不是SettingsRoute路由。

当我对路线重新排序时SettingsRoute出现在Default之前,那么我的Html.BeginForm()来电看起来像这样:<form action="Settings/Welcome/Login">这根本不是我想要的。

有没有解决方案?

1 个答案:

答案 0 :(得分:0)

您可以提及&lt;%:Html.ActionLink(“创建项目 - &gt;这是您要重定向的页面”,“索引”,“项目 - &gt;页面的文件夹”)%&gt;  您可以从一个页面导航到另一个页面。