MVPパターン-パッシブビューおよびIView(Asp.Net、Webフォーム)を介した複合型の公開

StackOverflow https://stackoverflow.com/questions/153222

  •  03-07-2019
  •  | 
  •  

質問

最近、パッシブビューアプローチでMVPパターンに切り替えました。ビューインターフェイスが、TextBoxesにマッピングされた文字列、DropDownListsにマッピングされたIDictionary、いくつかのグリッドにマッピングされたIEnumerable、リピーターなど、基本的なclrタイプのみを公開する場合、非常に快適に作業できます。

ただし、この最後のアプローチが機能するのは、それらのグリッドから1つの列のみを気にする場合だけです。 IView内でグリッドの複数行コンテンツをマップするにはどうすればよいですか?今のところ、2つのソリューションが思い浮かびますが、どちらも素晴らしいものではありません。

  1. グリッドのコンテンツのDTOを作成し、IViewでIEnumerableを公開します。   または
  2. IEnumerableまたは単に「グリッド」を公開します。 IViewの場合と同様。

最初の解決策は、パッシブビュールールを破り、Supervisoring Controllerパターンに近づいているようです。 これをどのように処理しますか?

ありがとう、Ł ukasz

役に立ちましたか?

解決

MVPを使用すると、このような場合を除いて、Webフォームの開発がはるかに簡単になります。ただし、TDDを使用して、IViewがそのグリッドのデータを本当に必要とすることを確認した場合、問題は実際にはわかりません。

次のようなことをしようとしていると仮定します:

public interface IView
{
 DataTable DataSource {get; set;}
}

public class View : IView {

private GridView _datasource;
public DataSource 
{
  get { return _datasource; }
  set 
  { 
    _datasource = value; 
    _datasource.DataBind(); 
  }
}

MVPパターンで使用すると、この小さなパターンが非常に役立ちます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top