首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mvc路由编码与Url.Encode

问mvc路由编码与Url.Encode
EN

Stack Overflow用户
提问于 2017-08-11 18:30:42
回答 1查看 983关注 0票数 0

我有mvc5网站和有问题的编码链接。

代码语言:javascript
复制
        string text = "Guns N' Roses";
        string Link1 = Url.Action("Artist", "Index", new { id = text }); // -> Index/Artist/Guns%20N'%20Roses
        string Link2 = "Artist/Index/" + Url.Encode(text); // -> Artist/Index/Guns+N%27+Roses
        string Link3 = Url.Action("Artist", "Index", new { id = Url.Encode(text) }); // -> /Index/Artist/Guns%2bN%2527%2bRoses

对于链接,我使用Url.Action,它路由params和返回链接。在这个例子中,它返回的是“"Guns%20N'%20Roses","Guns+N%27+Roses". Guns N‘Roses”,但是当我只是通过Url.Encode隐秘的param时,它返回了“Guns+N%27+Roses”.。

他们怎么会不一样呢?如何强迫Url.Action使仿射像Url.Encode?因为如果我在Url.Encode中使用wrap,然后用路由创建链接,就会进行双重编码,这是不正确的。

那么如何使"Artist/Index/Guns+N%27+Roses"?这样的Url.Action返回链接

杜克

EN

回答 1

Stack Overflow用户

发布于 2017-08-12 16:38:32

您可以像下面这样组合Url.Action()和Url.Encode()。

代码语言:javascript
复制
string text = "Guns N' Roses";
Url.Action("Artist", "Index") + "/" + Url.Encode(text);

或

代码语言:javascript
复制
string text = "Guns N' Roses";
string.Format("{0}/{1}",Url.Action("Artist", "Index"), Url.Encode(text));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45641723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档