2013-06-18 39 views
0

我很困惑应该如何从子组件向用户发送消息(如在MessageBox中)。说我有这样的代码:从MVP中的模型子组件返回错误消息

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

     aSubComponent.doSomethingThatCanError(); 
    } 
} 

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

如果错误只是在模型是,一个方法,我解决了这个是提高了演讲者侦听消息,然后从那里视图运行的东西以示消息框。当可能出现错误的代码位于另一个类中时,我可以考虑几种方法(如从该子组件转发事件),但似乎很麻烦。

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

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

回答

0

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

if (String.IsNullOrEmpty(aExample) { 

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

    } 
+0

然后,您可以输出它到一个视图,只要你想* – user2094139