Web API Post未返回响应

时间:2016-02-02 06:56:31

标签: asp.net asp.net-web-api

我有一个通过此方法调用的Web API:

public async Task<Model> AddModel(string token, Model newModel)
{
    HttpContent content = await HttpHelper.Request(token, baseUrl, url, newModel, HttpRequestType.POST);
    return await content.ReadAsAsync<Model>();
}

成功调用了Web API,我可以添加一个Model。这是被调用的Web API方法:

[Route("webapi/models/addModel")]
[HttpPost]
public async Task<ModelDto> AddWithoutResetingDefault(ModelDto newModel)
{
    ModelService modelService = new ModelService();
    return modelService.AddModel(newModel);
}

问题是在成功添加之后,它不再返回到调用代码(我有一个没有被击中的断点)。浏览器中没有控制台错误,我在try-catch中包含调用代码和被调用的代码,但没有抛出异常。

此外,在第一次单击添加后,如果我尝试刷新浏览器,则需要很长时间才能重新加载浏览器(我不知道异步是否与它有关)。

1 个答案:

答案 0 :(得分:0)

(我不知道异步是否与它有关) - 是的,

你的Api方法

public async Task<ModelDto> AddWithoutResetingDefault(ModelDto newModel)
{
    ModelService modelService = new ModelService();
    return modelService.AddModel(newModel);
}

标记为异步方法,但内部代码为Sync。这就是问题,如果你的modelService.AddModel(newModel);是异步,然后做  return await modelService.AddModel(newModel);

如果没有,那么AddWithoutResetingDefault就没有意义了 方法async,因此删除Aysnc并简单地执行像

这样的同步方法
 public ModelDto AddWithoutResetingDefault(ModelDto newModel)
    {
        ModelService modelService = new ModelService();
        return modelService.AddModel(newModel);
    }