首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# MVC - RedirectToAction方法编码查询参数

C# MVC - RedirectToAction方法编码查询参数
EN

Stack Overflow用户
提问于 2018-01-09 01:00:58
回答 1查看 857关注 0票数 0

我正在尝试使用RedirectToAction MVC方法从另一个操作方法重定向到另一个操作方法。目标操作方法接受查询参数。当我调用destination方法时,查询参数会被Url编码。

目标方法的签名如下:

代码语言:javascript
运行
复制
[Route("\resource\{id}")]
public ActionResult DestMethod(int id, string token)

我使用RedirectToAction从另一个操作方法调用此方法,如下所示

代码语言:javascript
运行
复制
RedirectToAction("DestMethod", new {id = id, token = token});

因此,当控件进入DestMethod时,token参数将进行Url编码。

发生这种行为的原因是什么?如何防止?

编辑:

如果我按原样从RidirectToAction发送令牌参数,即没有Url Encoding,则DestMethod接收到的是已编码的令牌参数,而不是解码。这就是令人困惑的行为。如果我从jquery ajax发送编码的参数,一切都会正常工作。

EN

回答 1

Stack Overflow用户

发布于 2018-01-09 01:21:03

网址编码是必要的,以确保地址是正确的,根据标准(Uniform Resource Identifier (URI)似乎是一个)。如果未对参数进行编码,则不能保证浏览器将正确运行,并且重定向实际上包含整个token参数。

由于MVC应该自动解码传入参数,因此编码传出参数在所有正常情况下都应该是所需的行为。我能想到的唯一不需要这样做的情况是,如果令牌已经是URL编码的,而我建议您在RedirectToAction中使用令牌之前对其进行解码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48154785

复制
相关文章

相似问题

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