【问题标题】:Ambiguous route ordering模糊的路线排序
【发布时间】:2013-04-30 06:07:40
【问题描述】:

我有两条不明确的路线,都在同一个 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() 调用看起来像这样:&lt;form action="Settings/Welcome/Login"&gt; 这根本不是我想要的。

有什么解决办法吗?

【问题讨论】:

  • 如果两者都在同一个区域内,那么当它的定义与默认路由相同时,为什么需要额外的路由?问题是您包含了{controller} 部分,并且引擎将Settings 作为路线的附加部分。

标签: asp.net-mvc routes


【解决方案1】:

你可以提这是你要重定向的页面","Index","Item-->页面的文件夹") %> 您可以从一个页面导航到另一个页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-02
    • 2019-09-29
    • 1970-01-01
    • 2015-02-18
    • 2019-07-13
    • 1970-01-01
    • 2015-12-26
    • 2016-11-27
    相关资源
    最近更新 更多