Использование MVP — как правильно использовать события для тестирования

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

  •  09-06-2019
  •  | 
  •  

Вопрос

Я только начал использовать шаблон MVP в большом приложении ASP.NET, которое я создаю (на самом деле перестраиваю), и мне трудно понять, как мне следует использовать события, применяемые к представлению.

Скажем, у меня есть два раскрывающихся списка в пользовательском элементе управления, один из которых зависит от значения другого:

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="ucTestMVP.ascx.vb" Inherits=".ucTestMVP" %>    
<asp:DropDownList ID="ddlCountry" runat="server" AutoPostBack="True" />
<asp:DropDownList ID="ddlCity" runat="server" />

Как следует определить событие AutoPostBack в интерфейсе?Должно ли это быть событие, которое обрабатывается пользовательским элементом управления следующим образом:

Public Partial Class ucTestMVP
  Inherits System.Web.UI.UserControl
  Implements ITestMVPView

  Protected Sub PageLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
      Dim presenter As New TestMVPPresenter(Me)
      presenter.InitView()
    End If
  End Sub

  Private Sub ddlCountrySelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlCountry.SelectedIndexChanged
    Dim presenter as New TestMVPPresenter(Me)
    presenter.CountryDDLIndexChanged()
  End Sub

End Class

Или должно быть событие, определенное в интерфейсе?Если это предпочтительный шаблон, как добавить события для обработки и использования?

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

Решение

Я не знаю, существует ли общепринятый шаблон.Я предпочитаю добавлять событие в интерфейс представления и давать ведущему ответ на представление.Я описал эту закономерность в подробнее здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top