問題タブ [webformsmvp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
697 参照

asp.net - WebFormsMvp で View から Presenter に多くのプロパティ値を取得するにはどうすればよいですか?

WebFormsMvp ページでビューからプレゼンターにビジネス オブジェクトの多数のプロパティ値を取得する最良の方法は何ですか?

DataSources に関するこの問題に留意してください。

これが私が提案するものです:

シナリオは、Quote というビジネス オブジェクトをデータベースからロードし、編集してから保存したいというものです。Quote クラスには多くのプロパティがあります。このフォームは、これらのプロパティのうち約 20 に関係しています。データベースとの間で Quote オブジェクトをロード/保存する既存のメソッドがあります。これをすべて一緒に配線する必要があります。

したがって、プレゼンターの View_Load ハンドラーで、次のようなことを行うつもりです。

そして、次のようにすべてのコントロールをバインドします。

大丈夫です。データが画面に表示されています。

次に、ユーザーは一連の変更を行い、[送信] ボタンをクリックします。ここがよくわからないところです。

フォームが編集できる 20 個のプロパティを公開する QuoteEventArgs というクラスを作成します。ビューが [送信] ボタンのイベントを発生させると、コード ビハインドでこれらのプロパティをコントロールの値に設定します。次に、プレゼンターが応答するイベントを発生させます。プレゼンターは Quote オブジェクトをデータベースから再読み込みし、すべてのプロパティを設定してデータベースに保存します。

これはこれを行う正しい方法ですか?そうでない場合、何ですか?

0 投票する
1 に答える
732 参照

asp.net - WebFormsMVPでのViewStateの管理

昨日、ASP.NETのViewStateに関する非常に優れた記事を読みました。

現在、プロジェクトでのテスト容易性を向上させるためにWebFormsMVPを使用しています。フレームワークはOnInitCompleteでプレゼンターバインディングを実行し、DataBind式に大きく依存します。

上記の記事を理解しているように、これによりModel.FirstNameがViewStateに配置されます。ビューステートトラッキングがすでに有効になっている場合、データバインディングはページライフサイクルの後半に発生するためです。

1つのオプションは、ViewStateを完全に無効にすることです。他にありますか?OnLoadはプレゼンターが処理できる最初のイベントであるため、OnInitまたはOnInitCompleteを使用することはできません。

また、例としてラベルを使用したことも覚えておいてください。複雑なコントロールでも機能するソリューションを探しています。

ありがとう。

0 投票する
2 に答える
678 参照

asp.net - ASP.NET WebFormsMVP PageDataSource イベントが不明な理由で 2 回実行される

問題は、 SelectMethodと他のアクションが 2 回実行されることです。これは大規模なソリューションでのみ発生し、単純なデモ アプリケーションでは発生しないため、特定するのが困難でした。

これをデバッグするために、トレースAXD ファイルを次に示します。

アップデート:

初期化は問題ないように見えると指摘されているため、問題はアプリケーションの他の側面と競合して別の場所にあるに違いありません。

0 投票する
1 に答える
605 参照

asp.net - ASP.NET WebFormsMVP について洞察を持っている人はいますか?

最近、このオープン ソース プロジェクト ASP.NET WebformsMVPに出くわしました。

これは asp.net mvc の代替のようであり、既存の Web フォーム アプリケーションにテスト容易性を導入する簡単な方法でもあります。(asp.net mvc で動作するように一連のコードを書き直すという苦痛を経験する必要はありません)

もちろん、コミュニティのサポートやオープンソース プロジェクトの放棄は、新しいことに挑戦する際に常に懸念されることですが、その不安から抜け出し、このフレームワークで真剣に試している人はいますか? もしそうなら、その長所と短所、そして本当に試す価値があるかどうかについての洞察を共有できますか?

どうもありがとう!

0 投票する
3 に答える
437 参照

asp.net - MVP パターン - 設計上の問題

現在のプロジェクト (asp.net アプリ) で MVP パターンを使用しようとしていますが、いくつかの問題が発生しました。ページには複数のセクションがあり、これらの独立したセクションにはユーザー コントロールを使用しています。各ユーザー コントロールには独自のビューとプレゼンターがあり、ページはベース ビューとして機能します。問題は、ユーザー コントロールに必要なデータをどのように渡すかです。

現在の設計に従って、ページ プレゼンターはページ全体に必要なデータを取得します。このデータをユーザー コントロール プレゼンターに渡す方法を教えてください。

私たちが考えている他のアプローチは、代わりにユーザー コントロールのビューのみを作成し、ページ プレゼンターを使用してすべてのイベントを処理することです。この場合、各ユーザー コントロール ビューによって実装される複数のビュー インターフェイスを hv します。しかし、ページ プレゼンターはどのようにしてさまざまなビューすべてと対話するのでしょうか?

ありがとう、jbn

0 投票する
1 に答える
481 参照

winforms - MVC/MVVM Windows フォーム アプリでエラー処理を行うにはどうすればよいですか

MVC に似たパターンを使用してアプリケーションを構築しています。状況は次のとおりです。関連付けられたリポジトリに変更を加えるモデルのコンテキストで。変更によって例外がスローされた場合、エラーに関する情報をユーザーに表示する正しい方法は何ですか? 私のプログラムの以前のバージョンでは、スパゲッティコード編成 (モデル、ビュー、コントローラーが重複) がある場合、ビューからほとんどすべてを行っていたため、エラーについてユーザーに通知するメッセージボックスを起動することは奇妙ではありませんでした。今、この新しいバージョンでは、私は物事を正しく行いたいので、モデル層に視覚的表現を持つことは悪いことだと思います. 少し前に、例外をキャプチャする正しい方法は何かと尋ねました。私が言及していた特定のポイントは、例外を内部コードから上位レイヤーにスケールアップするのではなく、最上位レイヤーでキャプチャすることでした。ほとんどすべての応答は、適切なアプローチではなく、責任あるエンティティによってキャプチャされ、再度スローされるというものでした。だから私は頭の中でこの矛盾を抱えています。関心の分離を維持してスケールアップすることは避けられないと考えていましたが、それは以前のアドバイスと矛盾しています。どうすれば続行できますか?しかし、それは以前のアドバイスと矛盾しています。どうすれば続行できますか?しかし、それは以前のアドバイスと矛盾しています。どうすれば続行できますか?

0 投票する
1 に答える
293 参照

asp.net - WebformsMvp-モデルの初期化

質問は簡単です。モデルを持っているとしましょう。最初のページの読み込み時にデフォルトのデータをモデルに読み込む必要があります。これはどこで行いますか?OnInitイベントをオーバーライドするデータロードを実行することを考えましたが、イベントが発生するまでにプレゼンターを使用できません。

何かお勧めはありますか?OnLoadメソッドをオーバーライドして実行していますが、何らかの理由でメソッドが2回呼び出され、データも2回ロードされます。

0 投票する
0 に答える
316 参照

asp.net - ページタイプ別のページ URL

ページタイプごとにページ URL を取得する方法はありますか?

URL の代わりにページ タイプを使用してページにリダイレクトできる拡張メソッドを作成しようとしています。

Index.asxp というページの場合

Indexクラスを使用して「Index.aspx」を取得する必要がありますTypeOf(Index)

0 投票する
1 に答える
227 参照

.net - 親ページにoutputcacheディレクティブがあるのに、コントロールのloadイベントがまだ呼び出されるのはなぜですか?

ユーザーコントロールのあるページがあります。このoutputcacheディレクティブをコントロールに配置すると、コントロールのloadイベントが発生しません

しかし、コントロールがオンになっているページに同じディレクティブを配置すると、loadイベントが発生します。なぜ動作が異なるのでしょうか?WebFormsMVPフレームワークを使用しています。

0 投票する
2 に答える
1964 参照

c# - データ リスト内のユーザー コントロールのイメージ ボタンからイベントを発生させる

:

これは私の最初の投稿です。私の誤解を許してください :D 私が直面している問題は次のとおりです。データ リスト内の「ImageButton」からイベントをキャッチしようとしていますが、いくつかの問題が発生しています。

何らかのアクションを実行するために起動されたボタンをキャッチする必要があります (そのため、それを特定する必要があります)。ボタンは、「DataList」に含まれるユーザー コントロール内にあり、ユーザー コントロール内に配置され、ページから読み込まれます (マスター ページもあります)。ここでネストされた順序を確認できます: Page->User-Control->DataList->User Control->ImageButton

Web アプリケーションは Web フォーム MVP パターンを使用して構築されているため、ページ (コントロールではない) にはすべてのロジックを管理し、データを送信して Web フォームをバインドし、必要なコントロールをロードするプレゼンターがあります。

メンバー.aspx

メンバー.aspx.cs

プレゼンターは次のようになります。

また、コントロール DataBoxControl には、別のユーザー コントロールを含むデータ リストが含まれています。

最終的なユーザー コントロール (ContactImage.ascx) には、Web コントロール 'ImageButton' が含まれます。

アクションを実行する ID は、「ContactImage」コントロールでイメージ ボタン「CommandName」に割り当てられます。これは、ボタンがクリックされたときに取得する必要がある値です。実際、ContactImage ユーザー コントロールは内部で何も実行せず、発生したイベントをデータ リストの OnItemCommand に依存していますが、次の 2 つの問題があります。

  1. Page_Load の前にデータ リストをバインドできないため、「IsPostBack」が false のときにデータ バインドが行われていることを確認する必要があります。その場合、ContactImage がそのプロパティをフルフィルしようとして失敗するため、発生したイベントは発生しません (List がバインドされていないため、DataList Item は空です)。
  2. データ リスト バインディングが Page_Init (ユーザー コントロール内) に移動されると、イベントが発生しますが、OnItemCommand は何も受け取りません (データ リストをバインドするリストも空です)。

シンプルなWebサイトを構築し、それが機能し、イベントがItemCommandに到達するため、使用しているパターンが何らかの形で責任を負っているのだろうか

シンプルな Web サイト (ここでは動作しますが、MVP パターンは使用されていません) Event.aspx

Event.aspx.cs

TopNestedControl.ascx

<%@ Register Src="~/Controls/BottomNestedControl.ascx" TagName="BottomControl" TagPrefix="bnc" %>

TopNestedControl.ascx.cs

BottomNestedControl.ascx

BottomNestedControl.ascx.cs

他のページでは、デリゲートを使用してイベントを処理していますが、「DataList」は使用されておらず、イベントは問題なくキャッチされています。とにかく誰かがこの混乱を解くのを手伝ってくれたらとてもうれしいです.

前もって感謝します、

ハビエル