在ASP.NET MVC 5.1上,我有一个接收加密字符串的操作,例如:
Nf7JnWp / QXfA9MNd52RxKpWg =
但由于此字符串中的斜杠,我收到404错误…
我试图用HttpUtility.UrlEncode和WebUtility.UrlEncode对字符串进行编码;
但我一直有同样的问题.有谁知道如何解决这个问题?
谢谢,
米格尔
最佳答案 您可以通过定义自定义路由为此构建解决方法.现在我不知道你如何命名你的控制器或你的动作,所以我将使用通用名称.
routes.MapRoute(
"SpecialControllerName",
"CustomName/{*id}",
new { controller = "CustomName", action = "CustomAction", id = UrlParameter.Optional }
);
public ActionResult Name(string id)
{
//logic goes here
}
所以我们在这里所做的就是采取行动.现在,如果您调用http://yourdomain.com/CustomName/Nf7JnWp/QXfA9MNd52RxKpWg=,它将在Controller CustomNameController中调用Action方法CustomName.
请注意,asp.net Framework采用路由配置中的第一条路由,该路由与其模式匹配.如果您有Defaultroute并将新的自定义路线置于其下方,则会失败.在其上方放置自定义路线将起作用
关于SO的类似问题:
> ActionLink contains slash (‘/’) and breaks link
> URLs with slash in parameter?