問題タブ [viewmodel]
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.
asp.net-mvc - ビュー内の複数のテーブルからのデータをリストとして表示する - ASP.Net MVC
次の 2 つのテーブルがあります (基本的な概要)。
Tbl_CategoryType
ID レベルID 説明
Tbl_Levels ID 名
基本的には、Tbl_CategoryType.LevelID 番号に基づいて Tbl_Levels.Name データを参照しながら、Tbl_CategoryType テーブル内のすべての情報を提示したいと考えています。
以下のように、リポジトリで結合を使用してみました。
ただし、そのメソッドを呼び出すと、カテゴリまたはレベルのタイプに適合しないため、割り当てることができるタイプがありません。
カスタムビューモデルを介してこれを行う必要があると想定していますが、手順がわかりません。
前もって感謝します
asp.net-mvc - 複数の集約ルートを持つビューモデルを処理するには?
現時点では、私はかなりひどいビューモデルを手に入れました。
クラスは次のようになります=>
問題は、Reader タイプがドメイン モデルに由来することです (SRP 違反)。
基本的に、私はデザインのヒントを探しています (つまり、ビューモデルを入力/出力に分割するのは良い考えですか?) ビューモデルを摩擦のない開発者に優しいものにする方法 (つまり、マッピングはコントローラーの基本クラスを使用して自動的に機能するはずです) ?
私は AutoMapper フレームワークを認識しており、おそらくそれを使用するつもりです。
もう一度言いますが、適切なビュー モデルを作成する際によくある落とし穴は何ですか? それをどのように構造化するのですか?複数のドメイン オブジェクトの入力が必要な場合、マッピングはどのように行われますか?
ビューが複数の集約ルートからのデータを必要とする場合について混乱しています。Library、Reader、BibliographicRecord などのエンティティを持つアプリを作成しています。
私の場合-ドメインレベルでは、これら3つのタイプすべてをグループ化することは意味がありませんLibraryReaderThatHasOrderedSomeBooks
が、特定の図書館の特定の読者向けに注文された書籍に関するリストを表示するビューには、それらすべてが必要です。
そのため、その下にあるビューモデルを使用してビューを作成しOrderedBooksList
、ビューモデルを作成しても問題ないようです。またはさらに良い-フラット化手法を活用し、などの小道具を持つビューモデル。OrderedBooksListModel
LibraryOutput
ReaderOutput
BibliographicRecordOutput
OrderedBooksListModel
ReaderFirstName
LibraryName
しかし、複数の入力があるため、マッピングの問題が発生します。
1 つの集約ルートのみを開始するのは、もはや 1:1 の関係ではありません。
それは、私のドメイン モデルがちょっと間違っているということですか?
また、純粋に UI レイヤーにあるビュー モデル フィールド (つまり、チェックされたタブを示す列挙型) についてはどうでしょうか。
このような場合、これは誰もがすることですか?
やりたくない=>
書き込みが多いようです。:)
現時点でこれを読んでいます。そしてこれ。
Ok。私はこの問題についてよく考えました。そうです-別の抽象化レイヤーを追加することは解決策のようです=>
だから - 私の考えでは、これはすでに機能しています。
ジミー
apache-flex - Flex で MVVM (ViewModel) パターンを実装するためのリソース?
Flex 3 で ViewModel を実装するためのコードまたはチュートリアルを教えてもらえますか?
Web で見つけたのは、Silverlight の例だけです。
wpf - WPFCALMVVMでモデルとビューを初期化する正しい方法は何ですか
WPFCALMVVMでビューとViewModelを初期化する2つの方法に出くわしました。
1-より人気があるようです。ビューを自動的に解決するには、ViewModelを解決する必要があります。ViewModelには、ビューに関する情報が含まれています。
2-かなりきれいに見え、ViewModelからビューを削除します。ViewModelを自動的に解決するには、ビューを解決する必要があります。オブジェクトをビューに挿入します(これが適切かどうかはわかりません)。
ビューとモデルを初期化するために受け入れられている方法と、各方法の長所と短所は何ですか。ビューにオブジェクトを挿入する必要がありますか?
c# - AutoMapper - ConstructedBy メソッドを使用してパラメータをカスタム リゾルバに渡す方法は?
私の ASP.NET MVC 2 (RC) プロジェクトでは、AutoMapper を使用して、Linq から Sql クラス (メディア) とビュー モデル (MediaVM) の間をマッピングしています。ビュー モデルには、ビューのドロップダウン用の SelectList プロパティがあります。データベースから SelectList プロパティ項目を設定するためのカスタム値リゾルバーがありますが、(ConstructedBy メソッドを使用して)ソース モデルからリゾルバーにいくつかの値を渡す方法があるかどうか疑問に思っています) a) 選択した項目を定義し、b ) db からアイテムをフィルタリングします。ソース オブジェクトはカスタム リゾルバに渡されますが、リゾルバはさまざまなタイプのソース オブジェクトを持ついくつかの異なるビュー モデルで使用されるため、マッピング構成で値を取得する場所を定義する必要があります。ここに私のビューモデルがあります:
オートマッパー マッピング構成:
.ForMember マッピング句で次のようなことができると便利です。
これを達成する方法はありますか?
asp.net-mvc - ドメイン エンティティから DTO への検証属性のマッピング
標準のドメイン層エンティティがあります。
ある種の検証属性が適用されています。
ご覧のとおり、これらの属性は完全に構成されています。ここで使用されている検証フレームワーク (NHibernate Validator、DataAnnotations、ValidationApplicationBlock、Castle Validator など) は重要ではありません。
クライアント レイヤーには、ドメイン エンティティ自体を使用せずに、ビュー レイヤーが使用する ViewModel (別名 DTO) にマップする標準的なセットアップもあります。
次に、クライアント/ビューでいくつかの基本的なプロパティ レベルの検証を実行できるようにしたいとしましょう。
これを行う唯一の方法は、ViewModel オブジェクトで検証定義を繰り返すことです。
ViewModel (DTO) レイヤーでビジネス ロジック (プロパティ レベルの検証) を繰り返したので、これは明らかに満足のいくものではありません。
では、何ができるでしょうか?
AutoMapper のような自動化ツールを使用して Domain エンティティを ViewModel DTO にマップすると仮定すると、マップされたプロパティの検証ロジックを ViewModel に転送するのもクールではないでしょうか?
質問は次のとおりです。
1) これは良い考えですか?
2) もしそうなら、それはできますか? そうでない場合、代替手段は何ですか?
ご意見をお寄せいただきありがとうございます。
asp.net-mvc - 同じasp.net mvcビューでフィルターされたリストとフィルターされていないリストを処理するにはどうすればよいですか?
ユーザーがサービスに加入しているかどうかを表示し、それをビューのテーブルに表示する方法が必要です。これまでのところ、ユーザーがサービスに加入しているかどうかは表示できますが、加入していない場合は表示できません。
次のようなビューモデルを作成しました。
public class MyServicesController : Controller
{
次に、サービス テーブルを次のようにビューにレンダリングします。
これは、そのサービスに登録しているユーザーをプルしてフィルタリングし、現在のユーザーがそのリストにあるかどうかを確認するのにうまく機能します。
しかし、<%foreach (var user in serv.AspnetUser)
句を使用してこのようにフィルタリングすることで、特定の特定のサービスを選択したユーザーのリストからのみ取得しています。
したがって、現時点では、選択されていないサービスを取得し、「まだ購読していません」という文字列を表示して、テーブル内のそのサービスの行にレンダリングする方法がありません。
上記の「ユーザー」変数を取り出して、現在のユーザーがそのサービスに加入しているかどうかの true または false を返すブール関数を作成しようとしました。
しかし、それをビューに入れる方法を見つけることができず、この方法を試すことで複雑になりすぎていると感じました。
誰でもこれを行うためのより簡単な方法を見ることができますか?
どうもありがとう、
ポール
asp.net-mvc - asp.net mvc multiselect ポストバック後の状態を記憶する
asp.net mvc アプリのエラー チェックに DataAnnotations を使用しています。厳密に型指定された ViewModel も使用しています。
エラー チェックは正常に機能しており、フィールドが空白の場合はエラー メッセージがビューに表示されます。ただし、フォームに MultiSelect / Listbox があり、エラー後の状態を覚えておく必要があります。
現時点では、ViewModel は次のようになっています (関連するプロパティのみを含めています)。
これは私のコントローラの私のアクションです:
私の MultiSelect は FavouriteGenreViewModel のリストを取得して GenresList のオプションを選択します。これは GET アクションで AutoMapper を使用して行いますが、投稿された値を忘れてしまうため、投稿で AutoMapper を使用できないことは明らかです。
FavouriteGenreViewModel のリストの代わりにコンマで区切られた ID の文字列を使用することを考えました。そうすれば、ポストバックされた値を再利用できます...しかし、誰かがこの問題に対処するよりエレガントな方法を持っていることを願っています。
ありがとうございました!
ポール
wpf - WPF 条件付き検証
ビュー モデルで電子メール アドレスを検証する際に問題が発生しています。私がチェックしているプロパティは -
「[SOME Operator("EnabledField")]」という行のコーディング方法がわかりません。私がやろうとしているのは、EnabledField チェックボックスがクリックされた場合、このフィールドが有効な電子メール アドレスであることを検証することです。
編集メモ - 条件を Or から And に変更
asp.net - ViewModel (WPF/Silverlight) と厳密に型指定された ViewData (ASp.NET MVC) を組み合わせますか?
注: 以下のテキストでは、WPF/Silverlight の ViewModel と ASP.Net MVC の厳密に型指定された ViewData の両方に「ViewModel」という用語を使用します。
ASP.Net MVC クライアントと WPF/Silverlight クライアントの両方を同じプロジェクト (つまり、同じ DataModel に対して) に作成したいのですが、共通の ViewModel プロジェクトを作成するか、クライアント テクノロジごとに個別の ViewModel を作成する必要がありますか?
共通の ViewModel が正しいことだと信じたいのですが、依存プロパティまたは JSON 文字列を作成する必要があるため、互換性がないように見えます。
おそらく別の解決策は、ViewModel の共通部分を DataModel レイヤーに入れることでしょうか?
私を正しい方向に導く助けに感謝します、ありがとう