Паттерн MVP - пассивный просмотреть и обнажая сложные типы через руки (Asp.Net, веб-формы)

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

  •  03-07-2019
  •  | 
  •  

Вопрос

Недавно я перешел на шаблон MVP с подходом пассивного просмотра.Я чувствую, что с ним очень удобно работать, когда интерфейс view предоставляет только базовые типы clr, такие как string, сопоставленные с текстовыми полями, IDictionary, сопоставленный с выпадающими списками, IEnumerable, сопоставленный с некоторыми сетками, повторители.

Однако этот последний подход работает только тогда, когда из этой сетки меня интересует только один столбец.Как я могу отобразить многорядное содержимое сетки внутри IView?На данный момент мне приходят в голову два решения, оба не блестящие:

  1. Создайте DTO для содержимого сетки и предоставьте IEnumerable в IView, или
  2. Предоставьте IEnumerable или просто "сетку", как в IView.

Первое решение, по-видимому, нарушает правила пассивного просмотра, приближаясь к шаблону контролирующего контроллера, а второе вообще нарушает весь шаблон MVP.Как бы вы справились с этим?

thanks, Łukasz

Это было полезно?

Решение

MVP значительно упрощает разработку webforms, за исключением подобных случаев.Однако, если вы использовали 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