gpt4 book ai didi

asp.net - 使用保留字 "action"作为 MVC 参数名称

转载 作者:行者123 更新时间:2023-12-04 16:10:29 25 4
gpt4 key购买 nike

提供有关我的平台的详细信息。我将 Visual Studio 2017 与 .NET Core Web 项目结合使用。

我正在为我无法更改客户端的客户端实现一个新的后端。我正在尝试使用 MVC 来完成此任务。

我必须能够响应的 URL 是 -> https://my.server.com:8443/portal/gateway?sessionId=0A6405100000001D04FB55FE&portal=4ba457d0-e371-11e6-92ce-005056873bd0&action=cwa&token=3fcbc246bb3c35a5fa8055fec6bbf431

我想提取以下值:

  • sessionId
  • 门户
  • 行动
  • token

因为它们都有意义。

我在我的项目中创建了一个名为“Portal”的新 View 文件夹,并创建了一个名为“PortalController”的新 MVC Controller 。

我创建了一个名为 gateway.cshtml 的新 View ,还实现了以下功能 ->

public IActionResult Gateway(string sessionId, string portal, string action, string token)
{
ViewData["Message"] = "Gateway";
return View();
}

当我在函数中设置断点时,我收到上面提供的 URL 的以下值 ->

    sessionId   "0A6405100000001D04FB55FE"              string
portal "4ba457d0-e371-11e6-92ce-005056873bd0" string
action "gateway" string
token "3fcbc246bb3c35a5fa8055fec6bbf431" string

从调试器的输出中可以看出,对于名为“action”的参数,我没有收到客户端传递的值“cwa”,而是收到了 MVC 传递的名称“gateway” Action 的名称。

是否有处理此问题的“正确方法”?

我宁愿避免更改 startup.cs 文件中的路由,因为这会损害代码的模块化。我欢迎可用于重新路由参数名称的属性。

我能看到的另一种选择(买家无法弄清楚)是简单地使用 HTTP 请求来读取我感兴趣的值,而不是使用函数参数。

非常感谢您提供的任何帮助!

最佳答案

在 .Net Core 中,您可以使用

直接从 Request 获取您的 action 参数值
var action= Request.Query["action"];

它在 .Net Framework 中的什么位置

var action= Request.QueryString["action"];

关于asp.net - 使用保留字 "action"作为 MVC 参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43013680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com