Asp.net mvc 4 如何在Asp.net MVC中使用文件夹/子文件夹/控制器/操作创建URL?

Asp.net mvc 4 如何在Asp.net MVC中使用文件夹/子文件夹/控制器/操作创建URL?,asp.net-mvc-4,asp.net-mvc-5,Asp.net Mvc 4,Asp.net Mvc 5,如何在Asp.net MVC中指定类似于DomainName/Admin/Folder/Controller/Action/Parameters的URL?是否需要路由?有人知道吗?请帮助我。路由框架不是基于文件系统的。它不知道控制器在哪个文件夹中。您可以通过区域获得部分所需内容,区域允许您将控制器分组到公共目录下,但这不仅仅是一个简单的it目录。它有一个实际的类组件,路由框架用于创建和解释路由。例如,您可以添加一个区域,然后获得如下URL: @Url.Action("Action", "Cont

如何在Asp.net MVC中指定类似于
DomainName/Admin/Folder/Controller/Action/Parameters
的URL?是否需要路由?有人知道吗?请帮助我。

路由框架不是基于文件系统的。它不知道控制器在哪个文件夹中。您可以通过区域获得部分所需内容,区域允许您将控制器分组到公共目录下,但这不仅仅是一个简单的it目录。它有一个实际的类组件,路由框架用于创建和解释路由。例如,您可以添加一个区域,然后获得如下URL:

@Url.Action("Action", "Controller", new { area = "area", class="class", etc })
/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
属性装饰控制器:

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

我在我的项目中也遇到过同样的问题。当菜单或重定向保留为文件夹子文件夹时,为菜单或重定向指定href失败

更好的选择是html链接中带有Url.action的href。

<a class="nav-link"  href="@Url.Action("ActionmethodName", "Controller Name", new { name = "John", contact = "calgary, vancouver" })">Home</a>

对Ajax调用使用完整路径Url:
为ajax调用的url参数指定完整的url。

我想要像域/文件夹/子文件夹/控制器/操作名/部件名称这样的url。这将为您提供域,而且MVC也能理解。请参阅Chris Pratts的答案,了解有关that@MattBodily您好,我需要像url,我怎么才能得到这个?端口应自动拉作为域的一部分。将文件夹添加到末尾将很棘手。您可以使用@Url.Action()+“foldername/filename”来完成此操作。我从来没有使用过这样的结构,所以不确定。好运气向我们展示了一个你想要实现什么以及为什么。。。请说“很紧急”,所有的乞讨都不在这里。