我有一个安静的WebAPI应用程序,处理来自AngularJS应用程序的请求。需要GET动词的控制器动作可以正常工作,但POST/PUT不返回任何内容的动作会引发Nullreference异常。WebAPI控制器在后台抛出异常
实施例:
[HttpPut]
public void Update()
这使我后功能执行返回以下信息:
System.NullReferenceException: Object reference not set to an instance of an object. <SendAsync>d__0.MoveNext
它还将返回的HTTP状态代码204到客户端。
通过改变方法的签名是异步,并返回一个空的对象的要求,将工作:
[HttpPut]
[Route("")]
public async Task<object> Update(ProfileViewModel model)
{
_profileManager.Update(model);
return Ok(new {});
}
注意,只是返回状态码200将无法正常工作。还必须返回一些内容,否则会引发异常。
这发生在每个非GET请求上,包括DELETE。我如何解决这个问题,而不必更改签名并为每一种方法返回一个匿名对象?
1。请分享更多一点你的代码在你的更新方法。 2.您是否使用任何自定义格式器/模型活页夹? – Gurpreet
我用完整的Update()方法更新了这个问题,正如你所看到的那样,它没有太多的工作。关于格式化程序,是的 - 我使用格式化程序进行自定义Json序列化。 –
[什么是NullReferenceException,以及如何解决它?]可能的重复(https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it ) – Igor