2016-08-22 107 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

相關問題