当前位置: 首页 > 知识库问答 >
问题:

只能在asp中使用post to post方法。net核心webapi

邹修真
2023-03-14

我已经创建了非核心webapi项目来与移动应用程序交互。例如,如果我创建了一个名为Data的控制器,它有一个名为Search的方法,如下图所示。该项目已配置为发送和接收json数据。

[HttpPost]
public Searchresult search(SearchQuery s)
{
   // code to search
    return sr; //object of type Searchresult
}

我可以通过使用以下url,使用postman向该方法发送post请求http://localhost/api/Data/search

类似地,我可以在控制器内创建其他函数,并使用路由“/api/[controller]/[action]”调用它们。

我不能做同样asp.netcoreweb api项目。路由是控制器级别,即/api/[控制器],每次我发布只有post方法被击中。当我发布到“http://localhost/api/Data”时,它就会被执行

[HttpPost]
public string Post([FromBody] testclass t)
{
    return "{\"a\":\"" + t.a + "\",\"b\":\"" + t.b + "\"}";
}

当我发布到时,以下代码从未执行”http://localhost/api/Data/test"

    [HttpPost]
    public string test([FromBody] testclass t)
    {
        return "{\"a\":\""+t.a+"\",\"b\":\""+t.b+"\"}";
    }

共有1个答案

赖浩荡
2023-03-14

这很可能是因为您的管制员不了解您的路线之间的差异。您需要明确定义路由,如下所示:

[HttpPost("post")]
public string Post([FromBody] testclass t)
{
    return "{\"a\":\"" + t.a + "\",\"b\":\"" + t.b + "\"}";
}

[HttpPost("test")]
public string Test([FromBody] testclass t)
{
    return "{\"a\":\""+t.a+"\",\"b\":\""+t.b+"\"}";
}

然后发邮件给他们。

 类似资料:
  • 我的问题和这个差不多。 ASP。Net Core与EF Core和CosmosDB-身份问题 提供的答案不起作用。这会产生其他问题。当我从升级我的应用程序时,这些错误开始出现。NET Core 3.1 to。净5。降级应用程序使所有错误都消失了。显然,这个问题与efcore 5中引入的对cosmos的乐观并发支持有关。 https://docs.microsoft.com/en-us/ef/cor

  • 当从查询字符串提取的模型将字典作为其属性之一时,Swagger生成错误的URL。如何告诉Swagger更改URL中字典的格式或手动定义输入参数模式,而不自动生成?试图使用Swashbuck和NSwag。 控制器 输入模型-查询字符串 Swagger UI为查询模型的“条件”属性显示了这种格式 Swagger生成的URL-Open API v2-将不会绑定到“条件” Swagger生成的URL-Op

  • 我正在尝试从页面: 控制器: 但是我似乎无法在前端检索会话

  • .NET核心和ASP.NET核心到底有什么区别?

  • 我刚起步 (更新:解决方案是将UseRouting移动到/api/error路由下) 但是当时,永远不会调用错误控制器方法。

  • 我们正在开发具有移动部分和网络用户界面的应用程序。Web UI使用角,我们在后端配置cors时遇到了问题。我们的代码如下(只是对我们的问题很重要的代码): 从stackoverflow上的文档和其他帖子来看,这应该是可行的,但不是。我们错过了什么? thnx 编辑: 这是邮递员的请求: 卷曲'https://guw.azurewebsites.net/api/token'-X OPTIONS-H'