如何通过Asp.net WebAPI中的异常过滤器传递内容?
发布时间:2021-01-11 19:31:29 所属栏目: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 MV
- asp.net-mvc – ASP.NET MVC 3 Beta 1 Block访问Razor视图
- asp.net-mvc – 从Api控制器内生成绝对的url to action
- asp.net-mvc – 应用程序服务层作为静态类
- asp.net-mvc – ASP.NET MVC现在是“开源”.这是一件好事吗
- asp.net-mvc – ASP.NET MVC 3 Treeview
- Asp.net Core 1.1 升级后操作mysql出错的解决办法
- asp.net-mvc-3 – MVC3剃须刀:是否可以渲染传统的ASCX?
- asp.net – 应用程序池在iisreset之后无法启动
- 详解ASP.NET Core 中的框架级依赖注入
推荐文章
站长推荐
- asp.net-mvc – 使用输出缓存和其他动作过滤器
- ASP.NET通过分布式Session提升性能
- asp.net – 在为app_offline.htm提供特定URL时,将
- 认证 – WebApi ActionFilterAttribute,HttpActi
- asp.net-mvc – Umbraco 7自定义cookie
- .NET WebApi jsonapi.org支持
- asp.net-mvc – ASP.NET捆绑/分类:包括动态生成
- asp.net-mvc – SSL安全SaaS应用程序的URL设计
- js触发asp.net的Button的Onclick事件应用
- ASP.NET MVC是否使Web表单成为旧版平台?
热点阅读
