在多页ASPx网站上实现MVP模式

时间:2011-06-07 08:44:40

标签: c# asp.net mvp

我目前正在从aspx应用程序重新设计一个软件,以支持winforms,通过这样做,我实现了MVP模式,以便更轻松地处理进一步的开发,并且更容易维护同一应用程序的两个版本。

但这是我第一次实施这种模式,因此有几个问题表现出来。

  1. 由于此应用程序有多个页面/表单,每个视图是否应该有一个演示者(一个视图=一个aspx文件)?我猜是的,以便更容易维护并保持IView接口的整理。

  2. 我应该把IView写成什么'标准'细节?即。为了测试这个,我正在编写RegisterUser.aspx视图,并且在某些时候我想要禁用某些控件,如果我有一个通用的' void DisableControl(string name); void EnableControl(string name); '或更专业的' void DisablePasswordControl(); void EnablePasswordControl(); '?

  3. 我可以看到两种方法的利弊,所以我认为在我养成任何坏习惯之前至少应该问一下。

2 个答案:

答案 0 :(得分:1)

1是

2我会选择这样的房产:

public class RegisterUser : IRegisterUserView
{
   bool IRegisterUserView.PasswordEnabled
   {
     get { return tbPassword.Visible ; }
     set { tbPassword.Visible = value; }
   }
}

答案 1 :(得分:0)

对于第1点,每个视图应该是1个演示者,除非你有一个非常相似的演示者使用相同的视图。

对于第2点,您应该将其设置为void DisableControl(字符串名称),尽管这不是太必要,因为它可以在页面的aspx.cs部分中处理。这取决于您何时以及何时隐藏控件。

祝你好运!