1

我正在使用一个使用混淆 id 来显示 URL/路由的站点。

代替

控制器/编辑/23

它会显示类似

/控制器/编辑/ftoGI8yFctjGPLYBl1ButA%3d%3d

在用户成功在表单上执行“创建”后,我试图重定向到 /edit 路由。在控制器中我有:

return Json(new { responseText = "create_complete_redirect", url = Url.Action("Edit", "MyController", new { id = EncryptId(returnObj.ObjectId) }) });

EncryptId 是一个生成混淆 id 的函数。它在许多其他地方都可以正常工作,所以这不是问题。

问题是当我在客户端收到 json 数据时,url 出来:

/控制器/编辑/ftogi8yfctjgplybl1buta%253d%253d

加密 ID 的所有区分大小写的部分现在都强制小写。发生这种情况有原因吗?开发人员工具中网络选项卡上的响应显示数据从服务器下来,全部小写。

似乎问题出在 Url.Action 调用中。如果我在控制器中的代码的那部分设置断点,并运行 EnctrypId 函数,它显示生成了正确的字符串。

如果我尝试在控制器中运行整个 Url.Action 命令,则会出现错误

“表达式不能包含匿名类型”。

知道为什么 url.action 参数不保留大小写吗?

4

0 回答 0