C# 如何在MVC中路由包含url的url
基本上,我希望采用如下url: …并将其交给我的视图,其中包含razor可以在视图中访问的某个变量 这怎么可能呢 注意:我试过这个:C# 如何在MVC中路由包含url的url,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,基本上,我希望采用如下url: …并将其交给我的视图,其中包含razor可以在视图中访问的某个变量 这怎么可能呢 注意:我试过这个: routes.MapRoute( "Community", "{controller}/{url}", new { controller = "Community", action = "Index"
routes.MapRoute(
"Community",
"{controller}/{url}",
new { controller = "Community", action = "Index", url = "" }
);
它可以使用,但无法使用(IIS尝试解决后者,并给出了404)。来自:
有时,您必须处理包含变量的URL请求
URL段的数量。定义管线时,可以指定
如果URL的段数超过模式中的段数,则额外的
段被视为最后一段的一部分。处理
通过这种方式,可以使用
星号(*)。这称为“全部捕获”参数。路线
使用catch all参数还将匹配不包含
最后一个参数的任何值。下面的示例显示了一个路由
匹配未知段数的模式
query/{queryname}/{*queryvalues}
在您的情况下,它将是:
routes.MapRoute(
"Community",
"{controller}/{*url}",
new { controller = "Community", action = "Index", url = "" }
);
另一种更可靠的方法是对URL部分使用某种编码,例如来自的Base64URI编码,这解决了我的问题,非常感谢。非常详细,谢谢。