抛出异常并返回状态代码和消息

时间:2013-07-15 13:17:28

标签: asp.net-mvc breeze

我需要从我的asp.net mvc控制器抛出异常才能返回客户端。

我能做到:

throw new HttpResponseException(HttpStatusCode.NotAcceptable);返回状态代码。

或者我能做到:

throw new HttpRequestException("You must fill the name!");返回消息。

我的问题:是否可以将两种解决方案结合起来提供状态代码和消息?

有些想法:

throw new HttpRequestException(HttpStatusCode.NotAcceptable, "Fill the name!");

感谢。


更新

请注意,这是一个asp.net MVC网站,但使用的是Breeze框架。我的验证失败时需要抛出异常(因此在保存更改服务器端之前)。

public class TPBContextProvider : EFContextProvider<BreezeContext>
{

    protected override bool BeforeSaveEntity(EntityInfo entityInfo)  
    {
        ...
        throw new HttpResponseException(HttpStatusCode.Conflict);

2 个答案:

答案 0 :(得分:3)

您是否尝试过返回HttpStatusCodeResult而不是抛弃:

public ActionResult Index()
{
    return new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, "Fill the name!")
}

答案 1 :(得分:1)

我认为这会起作用

  var responseMsg = new HttpResponseMessage(HttpStatusCode.Conflict);
  responseMsg.Content = new StringContent("Custom error message");
  throw new HttpResponseException(responseMsg);