gpt4 book ai didi

javascript - 如何从 C# 服务器中的 POST(或其他 HTTP)请求访问参数?

转载 作者:行者123 更新时间:2023-12-02 23:40:03 25 4
gpt4 key购买 nike

我正在使用 ASP.Net Core 构建 Reactjs 应用程序,对此我完全陌生。我有一个 JS 组件(据我所知)正在向 C# 服务器 Controller 发出适当的获取请求 (POST)。服务器确实收到了请求。但是,我完全不知道如何访问请求的参数(我正在通过正文传递)。

我尝试使用 [FromBody] 直接访问正文。我还尝试利用 Request.Body、Request.Form、Request.Query、Request.Params 等。我尝试遵循我在网上找到的指南,这些指南似乎试图解决我的问题。其中有几个根本没有发挥作用。他们中的大多数使用了我当前的库中无法使用的关键字、类等,并且他们没有列出相应的库。据我所知,我已经偶然发现了正确的答案。但对于像我这样具有高度逻辑思维但在该领域几乎为零的经验的人来说,我无法理解其中的任何一个。

我在 JavaScript 中使用 fetch 的 POST 请求:

fetch('api/Database/PushStatus',
{
method: 'post',
headers: { 'Content-type': 'application/json' },
body: JSON.stringify({ order: this.state.orderNum, status: this.state.newStatus })
}
).then(response => {
response.json().then(data => {
this.setState({ reqCheck: "" + response, didPush: false });
})
}).catch(err => {
this.setState({ reqCheck: "Failure! (js)", didPush: false })
});

以及我在 C# 服务器上的请求处理:

[Route("api/[controller]/[action]")]
public class DatabaseController : Controller
{
string conStri = "Data Source=ADM293\\MSSQLSERVER01;Initial Catalog=testDB;User ID=sa;Password=password.1";
SqlConnection cnct = null;

[HttpPost]
public void PushStatus(string order, string status)
{
cnct = new SqlConnection(conStri);
SqlCommand command = new SqlCommand("insert into testTable values ('" + order + "', '" + status + "');", cnct);

using (cnct)
{
cnct.Open();
int result = command.ExecuteNonQuery();
cnct.Close();
}
}
}

我希望使用 this.state.orderNumthis.state.newStatus 的内容更新我的服务器。相反,我的服务器被更新为空字符串值(这非常有意义)。

最佳答案

您可以创建一个代表请求的类:

public class PushStatusRequest
{
public string Order { get; set; }
public string Status { get; set; }
}

并像这样使用它:

[HttpPost]        
public void PushStatus([FromBody] PushStatusRequest request){
//request.Status
//request.Order
}

关于javascript - 如何从 C# 服务器中的 POST(或其他 HTTP)请求访问参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56120519/

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