استخدام 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