gpt4 book ai didi

c# - 发布到 MVC6 Controller 的值为空

转载 作者:行者123 更新时间:2023-11-30 16:03:45 27 4
gpt4 key购买 nike

我正在将我的 Web 应用程序从 MVC5 移植到 MVC6。此函数过去在 MVC5 中可以正常工作,但在 MVC6 中却不行。

我正在通过 AngularJS 将数据发布到此 WebAPI 方法,但搜索参数始终为空。我尝试用 [FromBody][FromHeader] 装饰它,但似乎都不起作用。 Controller 被击中,值为 null,怎么了?

[HttpPost("AdvancedSearch")]
public List<MatchResult> AdvancedSearch(string searchParameter)
{
var searchResults = service.GetResults(searchParameter);

return searchResults;
}

我的 AngularJS 调用看起来像这样

myAPI.advancedSearch = function (searchParameter) {
var url = '/api/advancedsearch/';

// Request data
return $http({
method: 'POST',
data: { searchParameter: searchParameter },
url: url
});
}

我验证了数据已发送,在 Chrome webtools 中“请求负载”是正确的

{searchParameter: "n1"}

最佳答案

我找到了一种无需使用模型或查询字符串即可执行此操作的方法。 This answer explains它,但基本上你可以使用

[HttpPost]
public System.Net.Http.HttpResponseMessage Post([FromBody]dynamic value)
{
//...
}

value 将包含您所有的发布数据。

编辑

如需进一步阅读,请 see this post ,包括所有绑定(bind)情况的表格以及何时有效和无效!

关于c# - 发布到 MVC6 Controller 的值为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36082102/

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