这是我的html.ActionLink:
@Html.ActionLink("Comment", "Comment", new { id = item.NewsId, title = item.Title + "#disqus_thread" })
它给了我以下网址:
http://localhost:62394/Home/Comment/5008/Iran%20women%20barred%20from%20presidency%23disqus_thread
而不是"#"
它会生成"%23"
我怎样才能确保它变成这样:
`
http://localhost:62394/Home/Comment/5008/Iran%20women%20barred%20from%20presidency#disqus_thread
很多人都非常感谢!
答案 0 :(得分:3)
你应该像这样使用Url.Action:
<a href="@Url.Action("Comment", new { id = item.NewsId, title = item.Title })#disqus_thread">Comment</a>
我相信它更简单,更清洁,更强大,更安全。
答案 1 :(得分:2)
试试这个: -
将ActionLink转换为字符串使用URLDecode并将其更改为将其呈现为Html.Raw。
@Html.Raw(HttpUtility.UrlDecode(Html.ActionLink("Comment", "Comment"
, new { id =
item.NewsId, title = item.Title + "#disqus_thread" }).ToString()))
答案 2 :(得分:0)
当我们在请求的url的查询字符串中传递特殊字符时,除非正确编码,否则可能会导致错误。这些特殊字符可以使用字符的十六进制值而不是字符本身来处理。
所以不要使用#
@Html.ActionLink("Comment", "Comment", new { id = item.NewsId, title = item.Title + "#disqus_thread" })
使用十六进制值%23
@Html.ActionLink("Comment", "Comment", new { id = item.NewsId, title = item.Title + "%23disqus_thread" })
我希望这对你有帮助..
答案 3 :(得分:0)
我遇到了同样的问题,但它是在DevExpress Grid Link中。这是我能够解决它的唯一方法。
@Html.ActionLink("Comment", "Comment", new { id = item.NewsId, title = item.Title + "#disqus_thread" }).ToString().Replace("%23", "#")
答案 4 :(得分:0)
我们假设你必须创建指向Bootsrap 4 Tab的URL,它只有两个标签。
@Html.Raw(HttpUtility.UrlDecode(@Html.ActionLink("My second TAB", "Index#second", "Home", null, new { @class = "btn-link" }).ToString()))
所以最终的网址看起来像
答案 5 :(得分:-1)
您应该在插入之前解码URL:
@HttpUtility.UrlDecode(Html.ActionLink("Comment", "Comment", new { id = item.NewsId, title = item.Title + "#disqus_thread" }))