2016-08-22 73 views
0

是否可以使用[controller]参数来引用路由中的不同控制器?我有一个控制器,我想根据另一个控制器的路线进行更改。在asp.net核心的路由属性中使用不同的控制器

例子:

控制器1:

[Route("[controller]")] 
public class Controller1:Controller{} 

控制器2:

[Route("[controller1]/user/[controller]")]//how can I make this route refer to controller1? 
public class Controller2:Controller{} 
+0

请说明您的具体问题或添加更多的细节,以确切地突出你所需要的。正如目前所写,很难确切地说出你在问什么。请参阅[如何提问](http://stackoverflow.com/help/how-to-ask)页面以获得澄清此问题的帮助。 – Nkosi

回答

0

不,这不可能得到[controller]绑定到一些其他的控制器名称。它总是指路由器已经选择的控制器。

[controller]模板实际上不会匹配任何您现在的例子。它试图在那里<Name>在路由令牌匹配的模式<Name>Controller

[Route("[controller]")] 
public class TestController : Controller { } 

将匹配的路由/test。 (还有的Routing文档中有详细说明)

如果你想前缀任意名称的路线,你可以硬编码它们:

[Route("other/user/[controller]")] 
public class TestController : Controller { } 

这将匹配/other/test

如果你不想硬编码字符串,我建议采用恒定:

public const string OtherRoute = "other"; 

[Route(OtherRoute + "/[controller]")] 
public class TestController : Controller { } 

这也将匹配/other/test

相关问题