問題タブ [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 投票する
1 に答える
215 参照

asp.net - asp.netのMVP、既存のデータからのデータでUIを埋めるプログラムはどこにありますか?

私は彼らがmvpパターンを実装した新しいクライアントにいます。

今私はそれを使用したいのですが、彼らのコードで見つけることができないのはこれです:私はクエリ文字列にIDを持つaspフォームを開きます。そのIDのデータオブジェクトを取得しました。これで、asp.netフォームのテキストボックスに表示するオブジェクトを取得しました。

私はこれを持っています:

プレゼンターを作成しました

プレゼンターには、IxxxViewを受け取るコンストラクターがあります

aspxページはIxxxViewを実装します

aspxで私はプレゼンターへの参照を持っています

aspxのロードで、プレゼンターを(this)でインスタンス化します

オブジェクトのIDをプレゼンターに渡すと、プレゼンターがデータを取得します。

(ここまでは順調ですね?)

次に、プレゼンターにオブジェクトがあり、ビューにテキストボックスがあります。

私は何を知っておくべきですか?

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

linq-to-sql - WebFormsMVPでのLinqtoSQLを使用したリポジトリパターン

WebFormsMVPでLinqtoSQLを使用してリポジトリパターンを実装するための良い例/サンプルはありますか。

0 投票する
4 に答える
2226 参照

asp.net - MasterPageのボタンクリックからユーザーコントロールでポストバックを処理するにはどうすればよいですか

MasterPage を持つ Web フォーム内にユーザー コントロールがあります。MasterPage にはログアウト ボタンがあります。

ログアウト ボタンをクリックすると、上記のイベント ハンドラが呼び出される前にユーザー コントロールがリロードされるため、データベースへの不必要なトリップが発生します。

ポストバックはどのように処理すればよいですか? ユーザーコントロールでそれを無視する方法はありますか?

前もって感謝します。

更新: 先に述べておくべきでした。実装フレームワーク「WebFormsMvp」を使用しています。MasterPage を含む Web フォームには、実行時にそれぞれのプレゼンターにバインドされるビューであるいくつかのユーザー コントロールがあります。Page_Load イベントの前にデータがフレームワークによって各ユーザー コントロールにバインドされているため、どのユーザー コントロールでも Page_Load を処理していません。

それに応じて、この質問のタグを更新します。

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

bdd - SubSpecおよびXUnitNullReferenceExceptionを使用したBDD

TDDはかなり新しいです。最初にBDDを試してみたい。MVP UIプレゼンテーションパターンフレームワークを使用していて、SubSpecとXUnitを使用して最初のテストを作成しようとしていますが、リポジトリを呼び出すと、プレゼンターからNullReferenceExceptionが発生します。

答えは明らかだと思いますが、それで私は理解できました。また、私のテストはプレゼンテーションパターンの詳細に関係しているようです-それは機能すると信じており、おそらく以下のようにテストする必要はありません(つまり、view.loadイベントを発生させる)が、私は考えることができませんでした別の方法の。より良いテストのための提案を歓迎します。

私のユニットテスト:

私のプレゼンター:

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

webformsmvp - 共有プレゼンターがデフォルトのプレゼンターを備えた他のコントロールと同じページで機能しない

マスター ページには、共有プレゼンターにバインドされた 4 つのユーザー コントロールがあります。ここで、デフォルトのプレゼンターを使用して他のユーザー コントロールをドームに追加したいのですが、例外があります。この問題は、ライブラリのダウンロード パッケージで利用可能なデフォルトのサンプル アプリで確認できます。HelloWorld ユーザー コントロールをページ SharedPresenter.aspx に追加すると、次のようになりました。

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

asp.net - モデル内のコレクションを順不同のリストに反復する方法は?

UI パターン フレームワークを使用しています。フレームワークを使用すると、クライアントでモデルの形式でデータにアクセスできます (MVC に似ています) <%# Model.Widget %>。Eval ステートメントを使用して FormView コントロールにバインドしています。モデル内のコレクションを順序付けられていないリストに反復する方法を見つけようとしています。

ウィジェットのプロパティの 1 つが文字列配列の場合、ウィジェット アイテムのプロパティを反復処理するにはどうすればよいですか? これは私がこれまでに得たものです:

明らかに、これは間違っています。コントロールの ItemTemplate の項目ではなく、Eval を使用して変数にデータバインドしているため、InvalidOperationException が発生しています。

前もって感謝します!

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

c# - Supervising Controller パターンを使用する場合、Moq'd ビューで WebFormMVP プレゼンターを単体テストするにはどうすればよいですか

ASP.NET WebFormsMVP を使用して作成されたプレゼンターをテストしようとしています。「監視コントローラー」パターンを使用して構築しているため、ビューはモデルからの更新を担当します。テキストボックス、ボタン、およびラベルを含むページの次の例を簡略化しました。テキストボックスに入力してボタンを押すと、テキストHelloWorld! <YOUR TEXT>がラベルに表示されます。

以下のサンプルコードですが、一言で言えば:

  1. button_click は View イベントを発生させます。
  2. プレゼンターはこの ViewEvent をサブスクライブし、引数 (つまりメッセージ) をキャッチします。
  3. プレゼンターが作業 (文字列連結) を実行し、モデルを更新します
  4. ビューは Model.Message プロパティに再バインドされ、すべて正常に機能します。

 

私の問題はテストにあります。

ビューはモデルから自分自身を更新する責任があるため、プレゼンターは Model.Message プロパティのみを設定します...そのため、単体テストでは次のことを行います。

  1. 私のモックIHelloWorldView
  2. モックでプレゼントをインスタンス化します。
  3. モックでイベントをトリガーする
  4. 現在、モックの Model.Message プロパティが設定されていることを確認します。

 

しかし、モデルのプロパティを明示的にMessage仮想としてマークしない限り、これは機能しません。これは本当にやりたくないことです。例えば

私の他のオプションは、パッシブ ビュー パターンを使用し、IHelloWorldView で asp:label テキストを文字列プロパティとして公開し、それをプレゼンターから直接設定することです...その後、テストできるはずです。

  1. テストの観点からすると、パッシブ ビューの方が優れたアプローチですか?
  2. また、モデルをモックする必要がありますか(WebFormsMVPで可能かどうかはわかりませんか?または
  3. モデル仮想 OR のすべてのプロパティを作成する必要があること
  4. どこかでポイントを逃しましたか?
0 投票する
1 に答える
1165 参照

asp.net-mvc-3 - WebとモバイルのMVPとMVCのデザインパターン?

今後のプロジェクトでは、MVC のオプションとして MVP を検討しています。私は MVC に非常に精通しており、MVC が好きです。MVP を使用して何か得られるかどうかを確認しようとしているだけです。

MVP について私が収集したのは、ViewState を使用する ASP.Net ビュー エンジン/MVC# (これは特に好きではありません) を使用しているということです。レンダリングされた Web ページに大量の余分なコンテンツを追加し、ルーティング機能は組み込まれていません。 (Global.asax に個別に書き込むことができます)。

一方、MVC/Razor は非常にクリーンな HTML をレンダリングします。

このような特定の記事では、複数のビューに MVP を使用する傾向があるように見えますが、jQuery Mobile を使用した MVC3 を考慮すると、この MVC で実現できる素晴らしいことがいくつかあります。

これらは現在 MVP で利用できるものと比べてどうですか? MVC よりも MVP を使用することの長所/短所、または潜在的な落とし穴は何ですか?

また、既存の MVP アプリケーションを使用して開発時間を短縮することも検討しています。

次のことにうんざりすることはわかっていますが、オプションを探しています。 このアプリは必要なすべての機能を提供しますが、このソリューションを実装する場合、追加の MVC アプリケーションを結び付けるのはどれほど難しいでしょうか (見た目が悪いことはわかっています)。これが (両方を組み合わせて) 考慮しなければならないものである場合、アプリケーションを MVC (ルーティング) でラップし、MVP アプリを内部に含めるのが最善でしょうか?

この理由は、機能の更新プロセスがずらされているためです。要件は、新しい機能 (MVC フレームワークを使用して構築されていますが、システムの残りの部分は MVC フレームワークを使用して構築されていません) を実装することです。将来の計画は、現在のフレームワークを MVC または MVP に完全に変更することです。

ありがとう。

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

c# - WebformsMVPはNinjectIPresenterFactoryを実装します

概念実証webformsmvpサイトを構築しています。プレゼンターを作成するときに、Ninject(v3.0)を使用してサービス(およびその他の)の依存関係を解決したいと思います。これが私のPresenterコンストラクターの例です:

したがって、カスタムIPresenterFactoryを使用してNinjectにIParticipantServiceの実装を解決させたいと思います。

参考までに、実装する必要のあるIPresenterFactoryインターフェイスのメソッドのシグネチャは次のとおりです。

質問があります; IPresenterFactory実装を実装して登録する場合、PresenterコンストラクターのView引数を解決する責任がありますか?webformsmvpフレームワークがこれを処理しませんか、またはカスタムファクトリ実装を提供することを選択したので、ビューを解決する責任を負いますか?

PS webformsmvp contribプロジェクトに実装があることに気づきましたが、これはNinjectv2用です。Ninject3のコードを書き直すことを検討してきました。しかし、これは私が質問に答えるのに役立ちません。