gpt4 book ai didi

asp.net-mvc - 如何在 ASP .NET MVC 中对参数进行 URL 编码

转载 作者:行者123 更新时间:2023-12-03 05:10:33 25 4
gpt4 key购买 nike

我认为有以下代码:

<%= Html.ActionLink(
"View item",
"Index",
"Items",
new
{
itemName = Model.ItemName
},
null) %>

当项目名称包含尖号 (#) 或百分号 (%) 时,我遇到问题。

  • 当项目名称为“name#with#sharp#”时, Controller 仅接收名称的第一部分,直到第一个锐号(仅接收“name” )。

  • 当项目名称为“name%with%percent”时,我收到错误:HTTP 错误 400 - 错误请求。

我不确定这是否是 URL 编码的问题,因为它适用于其他冲突的字符,例如:

;
=
+
,
~
[blank]

你知道我该如何解决这个问题吗?

提前致谢。

最佳答案

我假设您已经设置了路线并且您的网址如下所示:

http://localhost/Items/Index/name%25with%25percent -(这会爆炸)

与此相反:

http://localhost/Items/Index/?itemName=name%25with%25percent -(查询字符串可以)

因此,一个选项是从您的路由(在 RouteCollection 中)中删除“itemName”属性,以便 Html.ActionLink 将使用 itemName 作为 QueryString 参数来呈现 Url。

正如@Priyank所说,问题是因为itemName是Url的一部分(不是QueryString参数)并且它包含非法字符。

关于asp.net-mvc - 如何在 ASP .NET MVC 中对参数进行 URL 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5901049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com