在Razor中对URL进行编码的正确方法是什么?我在下面的尝试并未将空格更改为%20
。
survey.Name
是传递给控制器的变量
<a href="~/Survey/Take/@Uri.EscapeDataString(survey.Name)">@survey.Name</a>
答案 0 :(得分:2)
您可以像这样使用Url.Encode:
@Html.ActionLink(survey.Name, "Take", "Survey", new { name = Url.Encode(survey.Name) }, new { })
作为旁注,链接可以在不对空间进行编码的情况下工作。当链接将在您的应用外部使用时,您需要对其进行编码,例如在电子邮件中。
答案 1 :(得分:1)
HttpUtility.UrlPathEncode应该可以正常使用。试过并经过测试!
Here's a working fiddle example
#ifndef AF_CAN
#define AF_CAN 29
#endif
更新(谢谢@Sam Rueby)
不要使用;仅用于浏览器兼容性。使用UrlEncode。