【发布时间】:2017-08-02 10:37:42
【问题描述】:
我创建了非核心 webapi 项目来与移动应用程序交互。例如,如果我创建了一个名为 Data 的控制器,它有一个名为 Search 的方法,如下所示。该项目已配置为发送和接收 json 数据。
[HttpPost]
public Searchresult search(SearchQuery s)
{
// code to search
return sr; //object of type Searchresult
}
我可以使用邮递员通过以下网址向此方法发送发布请求 http://localhost/api/Data/search
同样,我可以在控制器内部创建其他函数并使用路由'/api/[controller]/[action]'调用它们。
我不能在 asp.netcore web api 项目中做同样的事情。路由是控制器级别的,即'/api/[controller]',每次我发布时只点击 post 方法。按照以下方式实施int eh。当我发布到'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+"\"}";
}
【问题讨论】:
-
这不是 Core Api 的“正常”行为,因此您的路线很可能有问题或提供的代码未涵盖的其他问题。通过坚持您遇到问题的特定场景(而不是对您认为问题所在的抽象解释)并发布您的实际代码,您将获得更好的运气,因为通常,通过创建虚拟示例代码时,您通常会消除或以其他方式掩盖您在真实代码中面临的问题。
-
实际上这是我的实际代码。我创建了一个虚拟项目来测试核心 web api,以便我可以开始实施实际项目。
标签: asp.net json http-post asp.net-core-webapi