Verwendung von MVP – So verwenden Sie Ereignisse richtig zum Testen
-
09-06-2019 - |
Frage
Ich habe gerade damit begonnen, das MVP-Muster in der großen ASP.NET-Anwendung zu verwenden, die ich erstelle (eigentlich neu erstelle), und es fällt mir schwer herauszufinden, wie ich Ereignisse verwenden soll, die auf die Ansicht angewendet werden.
Angenommen, ich habe zwei Dropdown-Listen in einem Benutzersteuerelement, wobei eine vom Wert der anderen abhängig ist:
<%@ 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" />
Wie soll das AutoPostBack-Ereignis in der Schnittstelle definiert werden?Sollte es sich um ein Ereignis handeln, das vom User Control wie folgt behandelt wird:
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
Oder sollte an der Schnittstelle ein Ereignis definiert sein?Wenn dies das bevorzugte Muster ist, wie füge ich Ereignisse hinzu, die behandelt und verwendet werden sollen?
Lösung
Ich weiß nicht, ob es ein allgemein bevorzugtes Muster gibt.Ich bevorzuge es, das Ereignis zur Ansichtsoberfläche hinzuzufügen und den Moderator auf die Ansicht reagieren zu lassen.Ich habe dieses Muster in beschrieben Näheres hier.