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

C# 从MVP中的模型子组件返回错误消息,c#,model,error-handling,mvp,C#,Model,Error Handling,Mvp,我不知道如何从子组件向用户发送消息(比如在MessageBox中)。假设我有这样的代码: class Model { public void somethingToDo() { SomethingElse aSubComponent = new SomethingElse(); aSubComponent.doSomethingThatCanError(); } } class SomethingElse { public vo

我不知道如何从子组件向用户发送消息(比如在MessageBox中)。假设我有这样的代码:

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

        aSubComponent.doSomethingThatCanError();
    }
}

class SomethingElse
{
    public void doSomethingThatCanError()
    {
        if(/* Everything is fine */ )
        {
            DoWhatWeAreSupposedToDo();
        }
        else
        {
            ShowAnErrorMessageBoxSomehow();
        }
    }
}
如果错误就在模型中,我解决这一问题的一种方法是引发演示者侦听的消息,然后在视图中运行一些内容以显示消息框。当可能出错的代码在另一个类中时,我可以想出几种方法(比如从该子组件转发事件),但这看起来很混乱

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


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

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

if (String.IsNullOrEmpty(aExample) {

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

  }

然后可以根据需要将其输出到视图*