問題タブ [asp.net-mvc-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.

0 投票する
11 に答える
84038 参照

asp.net-mvc - ViewModel のベスト プラクティス

この質問から、ビューが表示しようとしているモデルをより正確に反映するViewModelをコントローラーに作成させることは理にかなっているように見えますが、いくつかの規則に興味があります (MVC パターンは初めてです) 、まだ明らかでない場合)。

基本的に、次の質問がありました。

  1. 私は通常、1 つのクラス/ファイルを持ちたいと思っています。コントローラーからビューにデータを渡すためにのみ作成されている場合、これはViewModelで意味がありますか?
  2. ViewModelが独自のファイルに属し、ディレクトリ/プロジェクト構造を使用して物事を分離している場合、ViewModel ファイルはどこに属しますか? コントローラーのディレクトリに?

今のところ基本的にはそれだけです。さらにいくつか質問があるかもしれませんが、これはこの 1 時間ほど私を悩ませてきました。他の場所で一貫したガイダンスを見つけることができるようです。

編集: CodePlex のサンプルNerdDinner アプリを見ると、ViewModels がControllersの一部であるように見えますが、それでも独自のファイルに含まれていないことに不快感を覚えます。

0 投票する
6 に答える
21697 参照

asp.net-mvc - サービスレイヤーはMVCアプリケーションのビューモデルを返す必要がありますか?

ASP.NET MVCプロジェクトがあり、asp.netサイトの次の連絡先マネージャーチュートリアルのように、サービスレイヤーを使用しているとし ます。http ://www.asp.net/mvc/tutorials/iteration-4-make- the-application-loosely-coupled-cs

ビューのビューモデルがある場合、サービスレイヤーは各ビューモデルを提供するのに適切な場所ですか?たとえば、サービスレイヤーのコードサンプルにはメソッドがあります

代わりにIEnumerableが必要な場合は、サービスレイヤーに配置する必要がありますか、それとも「正しい」場所である他の場所にありますか?

おそらくもっと適切なのは、ContactControllerに関連付けられたビューごとに個別のビューモデルがある場合、ContactManagerServiceに各ビューモデルを返すための個別のメソッドが必要ですか?サービスレイヤーが適切な場所でない場合、コントローラーで使用するためにviewmodelオブジェクトをどこで初期化する必要がありますか?

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

javascript - jQuery と ASP.NET MVC を使用してコレクションをモデルに挿入し、プラグインを作成する

利用可能なオプションを検討した後、ViewModel のコレクションにオブジェクトを動的に追加するためのいくつかの簡単な方法を提供する jQuery 用のプラグイン (偶然にも ASP.NET MVC 用のライブラリ) の作成を検討しています。

私はこのようなことを話します ( http://www.highoncoding.com/Articles/640_Adding_Multiple_Nested_Data_in_ASP_NET_MVC_Application.aspx )

でも、自分で何かを作り始める前に、そのようなものがすでにあるのではないかと思っていました。

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

asp.net-mvc - ASP.Net MVC 3 の複数のリポジトリを持つコントローラー

基準検索ページであるビューを制御するコントローラーがあります。ビューには、上部に検索基準セクションがあり、下部に検索結果を表示するグリッド セクションがあります。コントローラーには 2 つのリポジトリがあり、1 つは Criteria セクションに関連付けられているコンボボックス値などの一般的なもの用です。もう 1 つのリポジトリは、グリッド データ用です。両方のリポジトリでビューモデルを作成し、それをビューに (モデルとして) 渡します。これにより、モデルが非常に巨大になります。これを行うより良い方法はありますか?

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

asp.net - モデル アイテムはタイプ CookMeIndexViewModel ですが、タイプ IEnumerable のモデル アイテムが必要です

ASP.NET MVC を学ぶために、音楽ストアの例に従っています。クックブック アプリケーションを作成しています。

次のようなビューモデルを作成しました。

私のコントローラーは次のようになります

最後に、私のビューは次のようになります

このエラーが発生します。

ディクショナリに渡されたモデル アイテムのタイプは ですCookMeIndexViewModelが、このディクショナリにはタイプ のモデル アイテムが必要IEnumerable<CookMeIndexViewModel>です。

私はその例に従いました。何が間違っているのかわかりません。ビューモデルを汎用リストとして返す必要がありますか?

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

c# - MVC ASP.NET の ViewData と ViewModel

私は.Net開発が初めてで、現在NerdDinnerチュートリアルに従っています。あなたの誰かが私に言うことができるかどうか疑問に思っています

ViewData と ViewModel の違いは何ですか

(私が知っているのは、コントローラーからビューに何らかの形式のデータを渡すために使用されることだけです)、おそらく、ViewModelの代わりにViewDataを使用する必要がある状況について教えてください。

前もって感謝します!

サリー

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

asp.net-mvc - 複合型 MVC 3 を使用したカスタム モデル バインダー

次の ViewModel があり、サブクラス (LogOnModel、ChangePasswordModel) をバインドするカスタム バインダーを作成したいと考えています。

カスタム バインダー (DefaultModelBinder から継承) を作成することはできましたが、完全な VALIDATED モデル (ModelState が入力されたもの) をコントローラーに戻すことはできませんでした。単純な型 (string、bool など) では問題なく動作しますが、複雑な型 (サブクラス) ではもう少し複雑です。

MVC 3 Futures は私の質問に対する答えですか、または誰かが DefaultModelbinder をオーバーライドしてサブクラスをバインドできましたか?

ありがとう、ミシェル

0 投票する
7 に答える
24820 参照

c# - MVC-複数のデータテーブルをビューに渡す

現在、MVCプロジェクトのHomeControllerに次のコードがあります。

これで問題ありませんが、2番目のテーブルを同じビューに渡します。だから私はこのようなことをすることができるはずだと思っていました:

ビューにこのような2つのモデルを受け入れる方法、または2つの結果セットをマージする方法はありますか(2つのテーブルはリンクされていません)?

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

asp.net-mvc - ASP .NET MVC がビュー モデルとポストされたフォームの値に基づいてフィールドを設定する方法に混乱

この質問がすでに尋ねられているかどうかはわかりません。

ASP .NET MVC 2 サイトを開発しています。私のビューには、ユーザーが編集のために表示するレコードを選択できるドロップダウンがあります。このドロップダウンが変更されると、現在選択されているレコードのフィールド値が自動的にサーバーに送信され、セッションに保存されます。サーバーは応答で、新しく選択されたレコードを編集するためのビューを返します。

私が抱えている問題は、新しいレコードが表示されたときに、前のレコードのフィールド値の一部が記憶されていることです。

私の見解では、問題を引き起こしている次のようなものがあります。

ここでは、投稿されたデータに、DisplayNameを含む複数のプロパティを持つActionTypeDetailsというパラメーターを設定します。

私のコントローラーのアクションは次のようになります。

私はこれに私のビューを変更しようとしました:

そして、これに対する私のコントローラーアクション:

それでも、同じ問題が発生します。なぜこのように機能するのか、ロジックを説明してもらえますか? 組み込みのモデル バインディングを引き続き使用できる最も簡単な回避策は何ですか? ModelState をクリアできることはわかっていますが、フォーム上の他のデータの一部を記憶したいので、これは理想的ではありません。

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

asp.net-mvc - EntityFramework とマップされた ViewModel を使用した ASP.NET MVC のベスト プラクティス

以前は MVC デザイン パターンを扱ったことがありませんでしたが、最近、ASP.NET MVC を使用してプロジェクトに取り組み始めました。

データ層として ActiveRecord を使用しています。

また、ビュー モデル (ビューごとに固有) と AutoMapper を使用して、ビュー モデルを EntityFramework エンティティにマップしています。

MVC、EntityFramework について調査し、さまざまな記事を読んで数日で、次の設計を思いつきました。

私のソリューションには、ビューとコントローラーを含む Web プロジェクト (プレゼンテーション レイヤー) があります。

ViewModels と Services (すべてのビジネス ロジックが行くビジネス レイヤー) を定義するコア プロジェクトがあります。

すべてのEFエンティティが存在するEntityModelsプロジェクトがあります(データレイヤー)

この設計により、データ レイヤーをプレゼンテーション レイヤーから分離しておくことができます。Web プロジェクトは EntityModels プロジェクトについて何も知らず、その逆も同様です。すべてのロジックはビジネス レイヤーにあります。

コントローラーから (検証チェック後)、ビューモデルをサービス層に渡し、マッピングと必要なすべてのビジネス ロジックが実行されます。

このデザインは本当に正しいですか?

私の意見は、ViewModel はプレゼンテーション層で定義する必要があることを読んだことです。プレゼンテーション層がデータ層への参照を持ち、マッピングがコントローラーで行われる例を見ました (良い習慣ですか?)。この場合、コントローラーはドメイン モデルをビジネス レイヤーに渡します。私はここでの経験はありませんが、好きではありません。

それで、誰かが私が正しいところと間違っているところを指摘できますか?

前もって感謝します。