如何在Asp.net MVC中指定DomainName/Admin/Folder/Controller/Action/Parameters
之类的URL?它是否需要路由?任何人有任何想法吗?请帮帮我。
答案 0 :(得分:2)
路由框架不是基于文件系统的。它没有控制器所在文件夹的概念。你可以通过区域获得你想要的部分,它允许你将控制器分组到一个公共目录下,但这不仅仅是一个简单的目录。它有一个实际的类组件,路由框架在创建和解释路由时使用它。例如,您可以添加一个区域,然后获取如下的URL:
/AreaName/ControllerName/ActionName/Parameters
但是你可以接受它。
您唯一的其他选择是使用自定义路由或属性路由到" fake"您想要的网址。换句话说,它仍然与实际的文件系统路径无关,但你可以定义路由应该以你想要的路径的静态组件作为前缀。
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
答案 1 :(得分:0)
@Url.Action("Action", "Controller", new { area = "area", class="class", etc })
答案 2 :(得分:0)
我在项目中遇到过相同类型的问题。当菜单或重定向保留为文件夹子文件夹时,为菜单或重定向指定href失败。
更好的选项是在HTML链接中带有Url.action的href。
<a class="nav-link" href="@Url.Action("ActionmethodName", "Controller Name", new { name = "John", contact = "calgary, vancouver" })">Home</a>
对Ajax调用使用完整路径网址: 为ajax调用的URL参数指定完整的URL。