如何通过Asp.net WebAPI中的异常过滤器传递内容?
发布时间:2021-01-11 23:55:32 所属栏目:asp.Net 来源:互联网
导读:考虑以下代码: 我的问题是: 1)我似乎无法将错误转发给HttpContent 2)我不能使用CreateContent扩展方法,因为context.Response.Content.CreateContent上不存在 这里的例子似乎只提供StringContent,我希望能够将内容作为JsobObject传递: http://www.asp.net/w
考虑以下代码: 我的问题是: 1)我似乎无法将错误转发给HttpContent 2)我不能使用CreateContent扩展方法,因为context.Response.Content.CreateContent上不存在 这里的例子似乎只提供StringContent,我希望能够将内容作为JsobObject传递: public class ServiceLayerExceptionFilter : ExceptionFilterAttribute { public override void OnException(HttpActionExecutedContext context) { if (context.Response == null) { var exception = context.Exception as ModelValidationException; if ( exception != null ) { var modelState = new ModelStateDictionary(); modelState.AddModelError(exception.Key,exception.Description); var errors = modelState.SelectMany(x => x.Value.Errors).Select(x => x.ErrorMessage); // Cannot cast errors to HttpContent?? // var resp = new HttpResponseMessage(HttpStatusCode.BadRequest) {Content = errors}; // throw new HttpResponseException(resp); // Cannot create response from extension method?? //context.Response.Content.CreateContent } else { context.Response = new HttpResponseMessage(context.Exception.ConvertToHttpStatus()); } } base.OnException(context); } } 解决方法context.Response = new HttpResponseMessage(context.Exception.ConvertToHttpStatus()); context.Response.Content = new StringContent("Hello World"); 如果要传递复杂对象,还可以使用CreateResponse(在RC中添加以替换不再存在的泛型HttpResponseMessage< T>类)方法: context.Response = context.Request.CreateResponse( context.Exception.ConvertToHttpStatus(),new MyViewModel { Foo = "bar" } ); (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC模型/ ViewModel验证
- asp.net-mvc-3 – 使用@ Html.Raw有风险吗?
- asp.net – 允许服务器/ usercontrol上的任何属性/属性
- asp.net – 是否有可能过滤SignalR中的接收器?
- asp.net-mvc – 无法在Web服务器上启动调试.调试器无法连接
- asp.net-mvc – 存储库与DAL中的服务模式:EF和Dapper
- ASP.NET MVC3中的HTML反而不是JSON的IIS响应
- asp.net-mvc – 如何在MVC视图中构造if语句
- asp.net – 在渲染到位图之前缩放WPF内容
- vs2008中文版提供下载(包含中文msdn),包括vs2008序列号和破
推荐文章
站长推荐
- 在HiddenField asp.net中存储一个字符串数组
- asp.net-mvc – 从扩展Apicontroller的MVC控制器
- 如何在asp.net应用程序中找到i / o瓶颈
- asp.net-mvc – DropDownListFor在编辑视图上不重
- asp.net-mvc – ASP.NET MVC运行IIS7部署问题
- asp.net-mvc – 删除布局将默认为_ViewStart,为什
- asp.net-mvc – 我可以从服务器端的持票令牌中检
- ADO.NET 2.0 Dataset和Datatable 新功能新特性
- asp.net-mvc – 在MVC Razor视图中使用@RenderBo
- asp.net – 双回发问题
热点阅读