【问题标题】:No Body Data Being Passed using .NET CORE 6没有使用 .NET CORE 6 传递正文数据
【发布时间】:2022-07-02 22:46:10
【问题描述】:

我正在将我的代码从 .NET 迁移到 .NET Core 6,但遇到了难题,谷歌搜索似乎没有帮助,因此欢迎提供任何建议和指点。

所有这些都在 .NET 中工作,因此我很清楚如何迁移 API。

我正在使用greasemonkey 脚本来抓取一些数据并将其传递到我的站点。

function sendHome() {
    console.log(window.eval('window.PA_intel'));
    GM.xmlHttpRequest({
        method: "POST",
        url: "https://localhost:7223/api/Parsing/Any",
        data: "{ Data: '" + JSON.stringify(window.eval('window.PA_intel')) + "', Type: 'Intel'}",
        headers: { "Content-Type": "application/json" },
        onload: function (response) { console.log(response); toastr["success"]("Intel sent home!", "Phoenix"); },
        onerror: function (reponse) {console.log("error: ", reponse)},
    });

}

这会从页面中抓取数据并将其推送到正在等待 api/Parsing/Any 的 API 路由

调试和邮递员可以触发 API 控制器,所以我知道路由有效,但正文(来自 GM 脚本的数据和类型)没有附带。

我有一个定义好的模型来接收数据

    public class ParseData
    {
        public string Data { get; set; }
        public string Type { get; set; }
    }

我的控制器设置为预期它,但在 .NET CORE 6 中它只是出现空

    [Route("api/Parsing/")]
    public class ParsingAPIController : Controller
    {

        [Route("Any")]
        public List<ParseResult> ParseAny(ParseData parseData)
        //public List<ParseResult> ParseAny(string Data, string Type)

        {

正如我所说,正在触发路由,但 parseData 对象为空,如果我对 ParseAny 进行检测以查看已发送的内容,我会收到一个空正文错误。

任何想法我哪里出错了?

【问题讨论】:

    标签: c# asp.net-mvc greasemonkey asp.net-core-6.0


    【解决方案1】:

    您可以尝试将标签 [FromBody] 与 ParseData 参数一起使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 2018-11-03
      • 2020-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多