問題タブ [modelbinders]
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 - MVC ビューとコントローラー: フォーム送信時にエンティティを再インスタンス化する
強く型付けされたビューに渡される MVC コントローラーでエンティティを操作しています。
フォームがビューに投稿されたときに、更新されたデータを使用してコントローラーでこれらのエンティティを再インスタンス化するにはどうすればよいですか? フォームにはエンティティのすべてのフィールドが含まれているわけではないため、エンティティを再インスタンス化するために必要なすべてのデータがモデル バインディングに存在しません。一部のデータセットのみが送信されます。
投稿された値でエンティティを更新する前に、キー値に基づいてエンティティをリロードすることはありません。これは 1) 非効率的です 2) 元の RowVersion 同時実行フィールドの値を保持しないと、Entity Framework で POCO オブジェクトとの楽観的同時実行が防止されます
しかし、私の質問は、これが推奨される方法ですか?
この質問は、ビューで再送信されず、エンティティをリロードしたくないデータを含むエンティティに適用できます。
ありがとう
asp.net-mvc - ASP.NET MVC 2 でのモデル バインディングのテスト
初め; MVC の内部をテストする必要がないことはわかっていますが、システムに流れ込むデータに関する一連のテストが本当に必要です。
HTTP コンテキストのすべてをモックすることなく、objectA (フォーム コレクション、辞書、コレクション、オブジェクトなど) が objectAModel に準拠しているかどうかをテストするにはどうすればよいでしょうか?
コントローラーをインスタンス化したり、アクションを呼び出したりする必要はありません。新しいオブジェクトがモデル状態を無効にするかどうかをテストしたいだけです。
簡単に書けばいいのに
asp.net-mvc - ASP.NETMVCModelBindingの継承されたクラス
継承に関連するASP.NETMVC(MVC 2プレビュー2を使用しています)のModelBindingについて質問があります。
次のインターフェイス/クラスがあるとします。
そして、カスタムモデルバインダーBaseModelBinderがあります。
次の問題はありません。
以下は機能しません(Childタイプのonオブジェクトのバインドでは):
すべての継承されたクラスに適用される基本クラスのモデルバインダーを作成する方法はありますか?可能なすべての継承クラスに対して手動で何かを入力する必要は本当にありません。
また、可能であれば、特定の継承クラスのモデルバインダーをオーバーライドする方法はありますか?これは機能しましたが、Child2用の特定のモデルバインダーが必要だったとします。
前もって感謝します。
asp.net-mvc - ASP.NET MVC 1:DataSet ModelBinding
私はMVCビューに出力するためのデータセットを与えられている状況にあります。送信後の帰りにモデルバインダーにそれを受け取らせる方法を見つけるのに本当に苦労しています。私はこのようなものを持っています...
このページでは、入力要素に対してさまざまな命名スキームを試しましたが、役に立ちませんでした。これも可能ですか。可能であればビューモデルタイプを使用しますが、残念ながらこれは完全に動的な構造であり、データセットを使用するのが最も自然な方法です。
c# - Asp.Net MVC 2 Beta ModelBinder の変更
MVC 2 Beta の ValueProvider 破壊的変更に従って、次のカスタム モデル バインダーを変更しようとしています。
問題は、この行が常に null として返されることです
何か案は?
c# - Asp.net MVCはフォーマットされた入力を受け入れますか?
フォーマットされたユーザー入力は通常、MVC アプリケーションでどのように処理されますか? たとえば、ユーザーが数字として「1,000.00」と入力したとします。デフォルトの ModelBinder がこれに対応していないことに少し驚いています。これは、独自の ModelBinder を作成するタイプのものでしょうか?
c# - Entity Frameworkを使用してASP.NET MVC (C#)のドロップダウンからSelectedValueを取得する
これが繰り返しの質問である場合は申し訳ありません。関連する質問をスキャンしましたが、明確なものは何も見つかりませんでした。
私は Entity オブジェクトを含む EditModel と、その中の 2 つの SelectList を使用しています。問題は、POST アクションに到達すると、ブラウザーで実際に何を選択しても、両方のドロップダウンの SelectedValues が、モデルのコンストラクターで設定したデフォルト値のままであることです。
私のコンストラクターは SelectedValues のいくつかのデフォルト値を設定しますが、それらは 0 と "" だけです (ドロップダウンでは有効な値ではありません)。問題はどういうわけかそれを中心に展開しているように感じますが、詳細を説明します。
以下は、モデルの簡素化されたバージョンです。
これはビューのドロップダウン部分です:
私はここで愚かで明白なことをしたかもしれません。ViewData ディクショナリを使用した場合の例ははるかに単純ですが、SelectList に直接モデル バインディングを使用しようとしている例はあまり多くありませんでした。
どんな助けでも大歓迎です!
クリス
c# - カスタマイズされた ModelBinder から例外をキャッチする場所
このようなコードを使用して Web からオブジェクトにバインドする、カスタマイズされた ModelBinder があります」
このモデルバインダーは例外をスローする可能性があります。それらの例外をキャッチするコードをどこに追加すればよいですか? 前もって感謝します!
asp.net-mvc - ASP.NETMVC2-IValueProviderでの値の設定
MVC1プロジェクトをMVC2RCにアップグレードしようとしています。現在、ValueProviderにアイテムを追加するカスタムmodelbinderがあります(これは辞書の場合に機能しました)。次に、これをデフォルトのmodelbinderに渡しました。ただし、IValueProviderにはaddメソッドがないため、このアルゴリズムは機能しなくなります。MVC 2のValueProviderに値を追加する方法を知っている人はいますか?
asp.net-mvc - Entity Framework (ASP.NET MVC) を使用したモデル バインド
前に、(投稿時に) クライアント オブジェクトを渡す AddClient ページを作成し、リポジトリで db.AddToClient(obj) を使用して永続化しました。簡単なもの。
これで、保存がアクション「UpdateClient」に投稿を送信する詳細ページがあります。そのアクションが実行される前に、カスタム モデル バインダーが Client オブジェクトを作成し、それがアクションに渡されます。問題は、このクライアント オブジェクトがまだ EF コンテキストに接続されていないことです。それを行う正しい場所はどこですか?モデルバインダーで、またはコントローラーから取得するとき、またはリポジトリ呼び出しを行ってそこにリンクするまで待つのでしょうか? 推奨されるプロセスは何ですか?