【发布时间】:2019-02-06 15:53:26
【问题描述】:
我将以下请求发布到
http://somesite.ngrok.io/nexmo?to=61295543680&from=68889004478&conversation_uuid=CON-btt4eba4-dbc3-4019-a978-ef3b230e923a&uuid=2ddh8172jbc252e02fa0e99445811fdc
我的 ASP.NET Core 应用程序中的动作控制器方法是:
[HttpPost]
public IActionResult Index(string uuid)
{
string s = uuid;
return View();
}
在return 行设置断点时,为什么s = null?它应该等于2ddh8172jbc252e02fa0e99445811fdc。
更新
添加[FromQuery] 似乎不起作用。我联系了 API 团队,他们回复我说这是他们发布到我的网址的信息:
"HTTP-METHOD=POST"
"HTTP-RESP=callback response is ignored"
"CONVERSATION-ID=CON-81593cc2-cba0-49e7-8283-f08813e1a98e"
"HTTP-REQ={from=61400104478, to=61290567680, uuid=8a4079c012c1bfa23f6dff8485e27d00, conversation_uuid=CON-81593cc2-cba0-49e7-8283-f08813e1a98e, status=started, direction=inbound, timestamp=2018-08-31T15:05:02.729Z}"
这些信息有什么帮助吗?也许我必须反序列化一些东西?我不会这么想,但我不明白为什么我没有检索到 uuid 值,而且我可以看到请求实际上已经进入了我的控制器操作...
【问题讨论】:
-
因为您没有告诉操作期望来自 URI 的参数
-
无论如何,您都不应该使用查询字符串进行 POST。查询字符串是 URI 的一部分,应该是幂等的,而 POST 本质上是 not。您有一个带有 POST 的请求正文 - 使用它。
标签: c# asp.net-core asp.net-core-mvc parameter-passing ngrok