如何在asp.net mvc中实现这一目标?我在那里看到了一些红宝石的例子......
即。嵌套文件夹,可以无限制......但是它们通常嵌套一次
e.g。
让我说我的应用程序中的主要路线是:
/项目/ {专案编号} /
我迷上了文件系统,所以我希望用户可以浏览任何目录结构,以便我可以:
/projects/{projectid}/foldera/
/projects/{projectid}/folderb/
/projects/{projectid}/foldera/pic1.png
/projects/{projectid}/folderb/special/car134d.jpeg
等...
这样我只能显示用户所在的url /目录中的文件或图片......
答案 0 :(得分:2)
我认为你所追求的是路由的{*queryvalues}
segmented url handler。 *表示一个或多个段的通配符样式匹配,由“/".
要映射到物理路径,您可以使用它来添加到Global.asax.cs的路由:
routes.MapPageRoute(
"Projects", // Route name
"projects/{projectId}/{*path}", // Route url format
"~/ProjectFolder/{projectId}/{path}" // Path to files
);
如果你想获得MVC控制器动作的路径,然后用它做一些事情,你可以使用MapRoute:
routes.MapRoute(
"Projects", // Route name
"projects/{projectId}/{*path}", // Route url format
new { controller = "Project", action = "Index" } // Defaults
);
然后创建一个ProjectController
,并在Index
操作中检索RouteData.Values["projectId"]
和RouteData.Values["path"]
并随身所欲地执行任何操作......