IActionResult参数未传递

时间:2018-08-31 15:15:45

标签: c# asp.net-core asp.net-core-mvc parameter-passing ngrok

我正在将以下请求发布到

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小组,他们回覆说这是他们张贴到我的url的信息:

"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值,而且我可以看到请求实际上已经到达了我的控制器动作...

1 个答案:

答案 0 :(得分:3)

因为您没有告诉操作要从查询字符串中获取参数

  

{'a': [['1', '2', '3']], 'b': [['4', '5', '6'], [ '7', '8', '9'], ['10', '11', '12']], 'c': [['13', '14', 15']]} [FromHeader][FromQuery][FromRoute]:使用它们来指定要应用的确切绑定源。

创建一个模型来保存值

[FromForm]

并根据查询字符串中提供的键值更新操作以使用public class Model { public string uuid { get; set; } //...other properties } 绑定模型

[FromQuery]

理想情况下,对于POST请求,您应该利用BODY请求来处理更复杂的类型,因为查询字符串比请求的主体更受限制。

引用Model Binding in ASP.NET Core