我对如何从子组件向用户发送消息(如在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模型的子组件中,在视图上向用户显示消息的适当方法是什么?
答案 0 :(得分:0)
您可以执行ModelState.AddModelError()并在视图中引用它。 另一种选择是抛出异常,或创建自定义异常,然后根据需要引用它们。例如。
if (String.IsNullOrEmpty(aExample) {
ModelState.AddModelError("Example", "Example is required");
}