2013-04-30 15 views
0

我有兩個模糊的路線,無論是相同的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路線抓獲。

當我重新安排路由,以便DefaultSettingsRoute出現那麼我Html.BeginForm()調用看起來是這樣的:<form action="Settings/Welcome/Login">這不是我想要的。

有沒有解決這個問題的方法?

+0

如果兩者都在同一區域內,那麼當定義與默認路由相同時,爲什麼還需要額外路由?問題是你已經包含'{controller}'部分,並且引擎將'Settings'作爲路由的附加部分。 – 2013-04-30 06:14:10

回答

0

你可以提到<%:Html.ActionLink(「創建項目 - >這是你想重定向的頁面」,「索引」,「項目 - >文件夾的頁面」)%> 你可以從一個頁面導航到另一個頁面。