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

asp.net-mvc - DTO を View Model に変換してから元に戻す方法は?

リポジトリ パターンと単体テストで MVC 4 を使用しています。シンプルな CRUD 機能を持つ典型的なコントローラーがあります。ビュー モデルを DTO から分離しました。この 2 つを変換する最良の方法を知りたいです。

モデル:

Admin.Models.ProductビューモデルとAdminAssembly.Models.ProductDTOがあります。

コントローラ:

2つの間で変換するにはどうすればよいですか?

ビュー モデルで DTO アセンブリを参照し、次のようなことを行いますか? (これで単体テストが中断されませんか?)

ある種のオブジェクト変換ブラック ボックスが必要ですか?

ある種のインターフェース?

または、他の何か?

更新 1:

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

asp.net-mvc-3 - MVCビューモデルの冗長性

ViewModelを作成すると冗長性が生まれませんか?ある意味で、私は自分のドメインモデルを持っており、そこからのデータをビューに表示する必要があります。そこで、ViewModelsを作成し、それにDataAnnotationsを追加して、ビューに表示します。この時点で、ほぼ同じデータを持つ2つのオブジェクトがあります。

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

asp.net-mvc - asp.net mvc 4 と EntityFramework を使用した ViewModels ポイントは何ですか

Entity Framework を使用するプロジェクトで ViewModel クラスを作成する意味は何ですか?

現在、EntityFramework を使用するプロジェクトがあります。私のソリューションは、基本的に次のように構成されています。

  • UI プロジェクト (コントローラーとビューを含む)
  • モデル プロジェクト (EntityFramework モデルを含む)
  • サービス プロジェクト (モデル プロジェクトと対話してモデル プロジェクトからエンティティを UI プロジェクトに提供するサービス クラスを含む)

私のコントローラーは、Entity Framework が作成するエンティティをビューに直接渡します。

シンプルでいいですね。

以前は、個別のビュー モデル クラスを作成し、EntityFramework が作成するエンティティからこれらのビュー モデルにマップしていました。しかし今、私は要点を見るのに苦労しています。

私は現在、エンティティ フレームワークによって生成されたエンティティからビュー モデルにマップするプロジェクトを手伝っています。実際にはAutoMapperを使用してこれを行います。

今、これはすべて、ほとんど利益のない多くの労力とコードのように思えます。

ここで何か不足していますか?

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

asp.net-mvc - ビュー モデルで変更された元の (DB) オブジェクトのプロパティのみを更新するにはどうすればよいですか?

たとえば、クラスとクラスDateCreatedにプロパティがあります。しかし、私の編集ビューでは、入力もストレージも何もありません。2013/03/17の の商品を編集すると、に戻されるは常に '0001/01/01' になります。未使用のフィールドごとに非表示の入力を編集ビューに追加しない限り、この情報は常に失われます。ProductProductDetailModelDateCreatedDateCreatededDateCreatedProductDetailModel

どのプロパティProductDetailModelが実際に署名された値であるか、フォーム要素が存在しないために単なるデフォルト値であるかを知る方法はありますか?

ビュー モデルで、更新されたフィールドのリストを維持する独自のモデル バインダーを作成して、保存する前にこれらの値を元のオブジェクトに戻すことしかできないようにする必要がありますか?

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

asp.net-mvc - ビュー モデル プロパティで DisplayAttributes を再利用する

DisplayAttributeビュー モデル内でエンティティの値を使用する方法はありますか?

ビュー モデルからリソースにアクセスできません。

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

asp.net-mvc-3 - MVC3 - 複雑なモデルのバインドに関する問題

会社のクラスを住所のIListで更新する必要があります。これらは私のデータモデルです。

コントローラーの GET アクションで Entity クラスから Viewmodel にデータをパックし、コントローラーの POST アクションで Viewmodel から Entity クラスにデータをアンパックしています。

これが私のビューモデルです。

各アドレス ボックスを表示するために部分ビューを使用しています。AddressRequests内のAddressRequestごとに、プレフィックスを正しく設定してオブジェクトを部分ビューに渡します。

ユーザーがこのリストに新しいアドレスを追加できるように、「新しいアドレスを追加」ボタン追加できるようにする必要があります。これは、ページを更新せずに行う必要があります。ユーザーがそのボタンをクリックすると、別のアドレスボックス (おそらく同じ部分) が表示されます。次に、ユーザーはボックスを編集し、 [保存] ボタンを押します。この [保存] ボタンは、 Addressだけでなく、会社のデータ全体を保存することになっています。

これを行う方法はありますか?どんな助けでも大歓迎です!

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

asp.net-mvc - VM の代わりに ViewModel サフィックスを使用する必要があるのはなぜですか?

これは愚かな質問かもしれませんが...

標準的な規則では、"ViewModel" サフィックスを使用することがわかりました。

VM サフィックスを使用できますか?

なぜこんなに長い接尾辞?

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

asp.net-mvc-4 - View (PartialView) によって返された ViewModel が空です

私のビューモデルがビューによって空として返される理由を理解するのを手伝ってください。Google で解決策を見つけようとしましたが、ほとんどのアドバイスは非表示を追加することです。しかし、私にとっては Html.HiddenFor を追加してもうまくいきませんでした

ここに私のコードがあります

ビューモデル

コントローラ

意見

部分表示

事前にサンクス。

UPD で生成されたHTMLは次のようになります

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

c# - バインディングに別の名前を使用するための ViewModel プロパティの装飾

MVC3 で、ViewModel プロパティを装飾しDefaultModelBinderて、リクエストで別の名前を使用する方法はありますか?

たとえば、次のビュー モデルがあるとします。

ただし、入ってくるパラメータは、外部ソース (サードパーティ コンポーネントなど) からのDirです。

Bind(Prefix="...")カスタム モデル バインダーがそれを処理できることはわかっていますが、そのマッピングを定義するためにアクション パラメーターが使用できる方法と同様に、プロパティを装飾する方法が必要であると思います。

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

c# - MVC の ViewModel ビルダーのインターフェイス

MVC ソリューションで ViewModels を処理する方法について決心しようとしています。さまざまな投稿やブログを読んだ後、最良のアプローチは、インターフェイスを実装し、それらをコントローラー自体に挿入するビルダーを用意することだと思います。

automapper を使用して、各ビルダーの実装でエンティティとビューモデル間のマッピングを行い、コントローラーは非常に薄いままです。

だから私はこのインターフェースを作成します

今のところ、それらを共変および反変にすることに関する警告を無視します (それが必要かどうかはわかりません)。

特定の ViewModel については、2 つの異なるサービスから 2 つのエンティティを取得する必要があるため、どの型引数を渡せばよいかわかりません。

多分そのインターフェースは正しくありませんか?

コントローラーでフェッチされた 2 つのエンティティをマージすることは、クリーンなソリューションではないことを理解していますよね?

誰かが私に手を差し伸べてくれるなら、私はとても感謝しています