从MVP中的模型子组件返回错误消息

时间:2013-06-18 20:24:36

标签: c# model error-handling mvp

我对如何从子组件向用户发送消息(如在MessageBox中)感到困惑。说我有这样的代码:

class Model
{
    public void somethingToDo()
    {
        SomethingElse aSubComponent = new SomethingElse();

        aSubComponent.doSomethingThatCanError();
    }
}

class SomethingElse
{
    public void doSomethingThatCanError()
    {
        if(/* Everything is fine */ )
        {
            DoWhatWeAreSupposedToDo();
        }
        else
        {
            ShowAnErrorMessageBoxSomehow();
        }
    }
}

如果错误只出现在模型中,我解决此问题的一种方法是引发Presenter侦听的消息,然后从那里运行视图上的某些内容以显示消息框。当可以出错的代码在另一个类中时,我可以想到几种方式(比如从该子组件转发事件),但这看起来很混乱。

我也可以使用Exceptions,但这真的是正确的方法吗?

在MVP模型的子组件中,在视图上向用户显示消息的适当方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以执行ModelState.AddModelError()并在视图中引用它。 另一种选择是抛出异常,或创建自定义异常,然后根据需要引用它们。例如。

if (String.IsNullOrEmpty(aExample) {

 ModelState.AddModelError("Example", "Example is required");

  }