我需要从我的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);
答案 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);