在Razor中编码部分URL

本文关键字:URL 编码部 Razor | 更新日期: 2023-09-27 18:15:23

在Razor中编码URL的正确方法是什么?我下面的尝试并没有将空格改为%20 .

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

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

在Razor中编码部分URL

您可以使用Url。像这样编码:

@Html.ActionLink(survey.Name, "Take", "Survey", new { name = Url.Encode(survey.Name) }, new { })

作为旁注,该链接不需要对空格进行编码。当链接在应用程序外部使用时,例如在电子邮件中,您需要对其进行编码。

HttpUtility。UrlPathEncode在您的情况下应该工作得很好。久经考验!

这是一个工作小提琴的例子

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

更新:(感谢@Sam Rueby)

不要使用;仅用于浏览器兼容性。使用UrlEncode。