استخدام MVP - كيفية استخدام الأحداث بشكل صحيح للاختبار
-
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
أم يجب أن يكون هناك حدث محدد في الواجهة؟إذا كان هذا هو النمط المفضل، فكيف يمكنني إضافة أحداث ليتم التعامل معها واستخدامها؟
المحلول
لا أعرف ما إذا كان هناك نمط مفضل عالميًا.أميل إلى تفضيل إضافة الحدث إلى واجهة العرض وجعل المقدم يستجيب للعرض.لقد وصفت هذا النمط في مزيد من التفاصيل هنا.
لا تنتمي إلى StackOverflow