【发布时间】:2020-09-16 14:50:36
【问题描述】:
我想在 c# 中创建一个 URL 重定向器,所以每当我的 MVC 应用程序基本 url 被参数击中时,我想根据 url 中的参数(站点、文件夹、文件、id 等)将它重定向到其他 url ) 例如:http://localhost:8080/site/folder/file/id 或 http://localhost:8080/site/folder/file 或 http://localhost:8080/site/folder 等。 所以请求url可以是任意类型,只有base url是固定的。
我尝试将默认路由更新为
routes.MapRoute(
name: "Default",
url: "{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我也尝试创建一个自定义的新路线
routes.MapRoute(
"DCTM", // Route name
"Da/{objectId}", // URL with parameters
new { controller = "Home", action = "Redirector" } // Parameter defaults
);
但是上述两种方法都给出了错误。可以做些什么来实现这一目标?
【问题讨论】:
-
你能举一个传入URL的具体例子吗?例如,当您说“URL 中的参数”时,您的意思是要将
http://localhost:8080?site=x&folder=y&file=z&id=1之类的内容转换为http://localhost:8080/x/y/z/1吗? -
传入 URL:localhost:8080/x/y/z/1,我想从 url 中读取 x,y,z 并将其重定向到具有 x,y,z 参数的其他 url
-
什么是“其他 URL”……那个 URL 会是什么样子?如果您不提供具体示例,我们无法提出解决方案。还要记住,MVC 中的路由点是指向特定的操作方法。您能准确解释一下转换 URL 的目的吗?当然,您只需要确保如果用户键入
localhost:8080/x/y/z/1,它会执行正确的操作。想要改变它的原因是什么,它会给你带来什么? -
我已经清楚地提到了所有有问题的东西
-
恕我直言,如果您提到了所有内容,那么我不会要求您澄清它。所以明确告诉我们,如果用户输入
localhost:8080/x/y/z/1,你想用它做什么,为什么?你说你想把它重定向到另一个 URL,但你没有说那个 URL 应该是什么,或者它与你的控制器和操作有什么关系。
标签: c# asp.net asp.net-mvc routes webapi