在Razor中编码URL的一部分

时间:2016-10-28 20:55:58

标签: c# asp.net-mvc razor html-helper

在Razor中对URL进行编码的正确方法是什么?我在下面的尝试并未将空格更改为%20

survey.Name是传递给控制器​​的变量

<a href="~/Survey/Take/@Uri.EscapeDataString(survey.Name)">@survey.Name</a>

2 个答案:

答案 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。