gpt4 book ai didi

c# - 未传递 IActionResult 参数

转载 作者:行者123 更新时间:2023-11-30 21:32:40 26 4
gpt4 key购买 nike

我正在将以下请求发布到

http://somesite.ngrok.io/nexmo?to=61295543680&from=68889004478&conversation_uuid=CON-btt4eba4-dbc3-4019-a978-ef3b230e923a&uuid=2ddh8172jbc252e02fa0e99445811/>

我的 ASP.NET Core 应用程序中的 Action Controller 方法是:

[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 值,而且我可以看到请求实际上已经到达我的 Controller 操作...

最佳答案

因为你没有告诉 Action 期望查询字符串中的参数

[FromHeader], [FromQuery], [FromRoute], [FromForm]: Use these to specify the exact binding source you want to apply.

创建一个模型来保存值

public class Model {
public string uuid { get; set; }

//...other properties
}

并更新操作以使用 [FromQuery] 根据查询字符串中提供的键值绑定(bind)模型

[HttpPost]
public IActionResult Index([FromQuery]Model model) {
if(ModelState.IsValid) {
var uuid = model.uuid;
string s = uuid;
return View();
}
return BadRequest();
}

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

引用 Model Binding in ASP.NET Core

关于c# - 未传递 IActionResult 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52118431/

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