ASP MVC ActionLink导致无效的URL

时间:2010-11-12 09:07:10

标签: asp.net asp.net-mvc urlencode actionlink

使用标准路线模式

{controller}/{action}/{code}

然后在我的视图中使用标准的ActionLink

<%: ActionLink("Details", "Details", new { code = item.Code }) %>

当用户输入“N / A”代码时,我会看到以下网址

http://localhost/AbsenceCode/Details/N/A

当我希望看到这个

http://locahost/AbsenceCode/Details/N%2FA

此外,如果用户将“A:B”作为其代码,我会看到正确的URL(冒号是网址转义的),但我从服务器收到“400错误请求”。

有没有人能解决这些问题?我不能强迫客户仅使用URL安全字符。

2 个答案:

答案 0 :(得分:0)

尝试

<%: Html.ActionLink("Details", "Details", new { code = Url.Encode(item.Code) }) &>

答案 1 :(得分:0)

我想出了一个解决方案,源代码可以在这里找到: https://mrpmorris.blogspot.com/2012/08/asp-mvc-encoding-route-values.html