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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top