MVC4 webapi 一个Controller中 多个HttpPost方法问题解决办法?

xuezt 2018-06-01 11:16:03
MVC4 webapi 一个Controller中 多个HttpPost方法报错500 Internal Server Error

WebApiConfig:

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "selfretail/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);

config.Routes.MapHttpRoute(
name: "selfretail",
routeTemplate: "selfretail/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);

Controller:

[HttpPost]
public RetailSaleGetPriceResult GetPrice(RetailSaleGetPriceInModel argData)
{
...
}
[HttpPost]
public RetailSalePrepareResult Prepare(RetailSalePrepareInModel argData)
{ ... }
...全文
1726 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这是服务器内部错误,通常这种问题原因有很多,建议你加一个异常筛选器,去捕获这个异常,然后再一步步找到问题点。

/// <summary>
/// 全局异常筛选器
/// </summary>
public class GlobalExceptionFilterAttribute : ExceptionFilterAttribute
{
    /// <summary>
    /// 引发异常事件
    /// </summary>
    /// <param name="actionExecutedContext"></param>
    public override void OnException(HttpActionExecutedContext actionExecutedContext)
    {
        ///在这里统一拦截了API的异常返回信息
        Exception exception = GetRealException(actionExecutedContext.Exception);
        
        var rsJosn = new { Code = 500, Msg = exception.Message, ExMsg = exception.ToString() };
        var response = actionExecutedContext.Response ?? new HttpResponseMessage();
        response.Content = new StringContent(Json.Encode(rsJosn), Encoding.UTF8, "application/json");
    }

    private Exception GetRealException(Exception ex)
    {
        if (ex.InnerException == null)
        {
            return ex;
        }
        return GetRealException(ex.InnerException);
    }
}

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        //其它操作.......

        // Web API Filter
        config.Filters.Add(new GlobalExceptionFilterAttribute());

        //其它操作.......
    }
}
  • 打赏
  • 举报
回复
DefaultApi要么指定defaultAction,要么删除
圣殿骑士18 2018-06-01
  • 打赏
  • 举报
回复
为什么配多个,没必要吧。

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧