0

我对应该如何从子组件向用户发送消息(如在 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 侦听的消息,然后从那里在视图上运行某些内容以显示消息框。当可能出错的代码在另一个类中时,我可以想到几种方法(例如从该子组件转发事件),但这似乎很混乱。

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

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

4

1 回答 1

0

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

if (String.IsNullOrEmpty(aExample) {

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

  }
于 2013-06-18T20:29:13.510 回答