2013-04-30 67 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(“创建项目 - >这是你想重定向的页面”,“索引”,“项目 - >文件夹的页面”)%> 你可以从一个页面导航到另一个页面。