2014-12-18 34 views

回答

0
@Url.Action("Action", "Controller", new { area = "area", class="class", etc }) 
+0

我想要域名/文件夾/子文件夾/控制器/ ActionName/Partameters – user632299

+1

這將爲您提供域和MVC理解。請參閱Chris Pratts的回答,以獲得對此的很好解釋 –

2

路由框架不是基於文件系統的。它沒有控制器所在文件夾的概念。你可以通過區域獲得你想要的一部分,這允許你將控制器分組在一個公共目錄下,但這不僅僅是一個簡單的目錄。它有一個實際的類組件,路由框架用於創建和解釋路由。舉例來說,你可以添加一個區域,然後得到一個URL:

/AreaName/ControllerName/ActionName/Parameters 

但是,只要你可以把它。

你唯一的選擇是使用自定義路由或屬性路由來「僞造」你想要的URL。換句話說,它仍然與實際的文件系統路徑無關,但你可以定義路由應該以你想要的路徑的靜態組件作爲前綴。

routes.MapRoute(
    name: "Default", 
    url: "Folder/SubFolder/{controller}/{action}/{id}", 
    defaults: new { 
     controller = "Home", 
     action = "Index", 
     id = UrlParameter.Optional } 
); 

或者具有屬性的路由,你會與RoutePrefix屬性裝飾你的控制器(S):

[RoutePrefix("Folder/SubFolder/Foo")] 
public class FooController : Controller