从Asp.Net MVC 6 API返回JSON错误
发布时间:2020-12-30 20:15:23  所属栏目:asp.Net  来源:互联网 
            导读:我正在尝试使用MVC 6构建一个Web API.但是当我的一个控制器方法抛出一个错误时,响应的内容是一个格式很好的 HTML页面,这是一个非常丰富的MVC应用程序.但是,由于这是一个API,我宁愿返回一些 JSON. 注意:我的设置现在超级基本,只需设置: app.UseStaticFiles()
                
                
                
            | 
                         我正在尝试使用MVC 6构建一个Web API.但是当我的一个控制器方法抛出一个错误时,响应的内容是一个格式很好的 HTML页面,这是一个非常丰富的MVC应用程序.但是,由于这是一个API,我宁愿返回一些 JSON. 注意:我的设置现在超级基本,只需设置: app.UseStaticFiles();
    app.UseIdentity();
    // Add MVC to the request pipeline.
    app.UseMvc(); 
 我想要普遍设置这个.是否有一个“正确/最好”的方法来设置在MVC 6中的一个API? 谢谢… 解决方法实现您的方案的一种方法是编写一个ExceptionFilter,并捕获必要的细节,并将Result设置为JsonResult.// Here I am creating an attribute so that you can use it on specific controllers/actions if you want to.
public class CustomExceptionFilterAttribute : ExceptionFilterAttribute
{
    public override void OnException(ExceptionContext context)
    {
        var exception = context.Exception;
        context.Result = new JsonResult(/*Your POCO type having necessary details*/)
        {
            StatusCode = (int)HttpStatusCode.InternalServerError
        };
    }
} 
 您可以将此异常过滤器添加到适用于所有控制器. app.UseServices(services =>
{
    services.AddMvc();
    services.Configure<MvcOptions>(options =>
    {
        options.Filters.Add(new CustomExceptionFilterAttribute());
    });
.....
} 
 请注意,此解决方案不涵盖所有方案…例如,当由格式化程序写入响应时抛出异常. (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- asp.net-mvc – 在OS X 10.7.4上的MonoDevelop中构建MVC4项
 - ASP.NET(C#)应用程序配置文件app.config/web.config的增、删
 - asp.net-core – 加密ASP.Net Core中的连接字符串和其他配置
 - asp.net汉字转拼音和获取汉字首字母的代码
 - 如何从经典ASP输出Excel * .xls文件
 - asp.net-mvc-4 – 表单身份验证:角色(MVC 4)C#
 - asp.net – Silverlight初始化错误2110 Internet Explorer
 - asp.net – 访问asp:从代码背后的内容
 - ASP.NET 2.0和4.0似乎在Forms身份验证中以不同方式处理根UR
 - ASP.Net下载大文件的实现方法
 
