我使用的网站使用混淆的ID来显示网址/路由。
而不是
控制器/编辑/ 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参数没有保留这种情况吗?