Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MVC中路由包含url的url_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 如何在MVC中路由包含url的url

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"

基本上,我希望采用如下url:

…并将其交给我的视图,其中包含razor可以在视图中访问的某个变量

这怎么可能呢

注意:我试过这个:

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编码,这解决了我的问题,非常感谢。非常详细,谢谢。