【问题标题】:Binding Custom exception from BAL to ModelState of controller in MVC将 BAL 中的自定义异常绑定到 MVC 中控制器的 ModelState
【发布时间】:2012-11-15 05:04:01
【问题描述】:

当发生某些验证错误时,MY Business 服务会返回带有键/值字典的自定义规则异常。

对于我想在我的 MVC 项目中处理并与 ModelState 绑定的此类验证错误,这些错误将自动填充到视图中。

但是因为当任何异常发生时它会自动重定向到错误页面。是否可以处理错误并在同一视图上显示?

【问题讨论】:

    标签: asp.net-mvc validation modelbinders


    【解决方案1】:
    try
    {
        BusinessService.SomeOperation(model);
    
        return RedirectToAction("Index"); //success
    }
    catch(RulesException ex)
    {
        foreach(var validationResult in ex.Result)
        {
              ModelState.Add(validationResult.Key, validationResult.Value)
        } //populate modelstate
    
        return View(model); //redisplay view with errors
    }
    

    【讨论】:

    • :),目前我暂时使用相同的方式,但是有什么方法可以将错误绑定到 ModelState ?那么事情将被每个 MVC 搁浅。
    • 将错误绑定到 ModelState 是什么意思?我认为 ModelState.Add 会这样做
    • 是的,但是我应该能够在不使用 try catch 包装方法调用的情况下添加它,而不是我想要一些过滤器,假设异常过滤器自动为我做这件事。
    • 如果我通过 WCF 服务使用业务规则方法会发生什么,我仍然可以在业务层使用该模型状态字典并通过 WCF 将其序列化到 UI 层。
    猜你喜欢
    • 2019-08-17
    • 2012-01-29
    • 2016-08-21
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多