路由排序不明确



我有两个模糊的路由,都在同一个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">这根本不是我想要的。

有什么解决办法吗?

你可以提到<%:Html。ActionLink("Create Item->这是你想重定向的页面","Index","Item->页面文件夹")%>你可以从一个页面导航到另一个页面。

最新更新