提供有关我的平台的详细信息。我正在使用.NET Core Web项目使用Visual Studio 2017。使用保留字“action”作为MVC参数名称
我正在为客户端实现新的后端,我无法更改客户端。我试图使用MVC来完成这一点。
我想提取值:
- 的sessionId
- 门户
- 行动
- 令牌
因为它们都有意义。
我在我的项目中创建了一个名为“Portal”的新视图文件夹,并创建了一个名为“PortalController”的新MVC控制器。
我创建了一个新的查看名为gateway.cshtml也已实现了以下功能 - >
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
如可以看到的在调试器的输出,对于名为“动作”的参数,接收由客户端传递的值“CWA”的isntead,我代替接收名称为“网关”,其由MVC作为动作的名称传递。
有没有处理这个问题的“正确方法”?
我宁愿避免更改startup.cs文件中的路由,因为这会损害代码的模块性。我会欢迎可用于重新路由参数名称的属性。
我能看到的另一种选择(购买无法解决)是简单地使用HTTP请求来读取我感兴趣的值,而不是使用函数参数。
非常感谢您提前为您提供的任何帮助!
我怀疑,如果startup.cs路线依赖于“动作”的含义动作,然后该死亡被施放,你将无法具有相同名称的RouteValue参数:在RouteValueDictionary中重复键。修改startup.cs听起来不错 - –