【问题标题】:transfering variable from angular to c# web api将变量从角度传输到 c# web api
【发布时间】:2019-10-02 11:29:37
【问题描述】:

我用 post 函数发送变量

  someFunction(param) {
    console.log("someFunction> "+param);
       return this.http.post(appSettings.BackEndUrl + '/test/someFunc',param);     
    }

console.log 显示

someFunction > 10

在后台我有

public async Task<Object> someFunc(string ttt)
{
    WriteLog("someFunc.txt", "start > "+ttt);

在日志中我看到了

开始>

即使我将字符串更改为 int

public async Task<Object> someFunc(int ttt)
{
    WriteLog("someFunc.txt", "start > "+ttt);

我仍然只看到

开始 > 0

我该如何解决?

【问题讨论】:

    标签: c# angular post transfer


    【解决方案1】:

    尝试将其添加为查询字符串 改变这种方式:

    someFunction(param) {
    console.log("someFunction> "+param);
       return this.http.post(appSettings.BackEndUrl + '/test/someFunc?ttt='+param);     
    }
    

    【讨论】:

    • 你确定吗?你的答案是获取类型而不是 POST。
    【解决方案2】:

    我不太确定这是否是 .Net 功能,但我记得在要从请求正文中获取的参数前面使用了 [FromBody] 注释。 此外,您的参数在前端和后端应该具有相同的名称。

    在你的情况下,它看起来像

    public async Task<Object> someFunc([FromBody] int param)
    

    我个人不喜欢将它添加到您的 url,因为您肯定不想在其中包含一些数据。

    【讨论】:

      【解决方案3】:

      如果您使用的是 ASP.NET Core 2.1+,只需使用 [ApiController] 属性即可自动推断 [FromBody] 绑定源。

      【讨论】:

      • 是的,它是 ASP.NET Core 2.1+ 你能连接一些例子吗?
      • 只需将 [ApiController] 属性添加到您的 Controller 类。
      • [ApiController] 公共类 ValuesController : ControllerBase
      • [ApiController] 已就位。它从一开始就在那里
      • 检查请求内容类型。它必须是“应用程序/json”
      猜你喜欢
      • 2021-06-01
      • 1970-01-01
      • 2019-08-14
      • 2022-11-23
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 2019-07-02
      相关资源
      最近更新 更多