2014-12-18 41 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