問題タブ [custom-model-binder]

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 投票する
2 に答える
110 参照

asp.net-mvc-3 - アクションシグネチャでのオブジェクトバインダーの選択

セッションからデータを取得するためのカスタムモデルバインダーがありますが、デフォルトのバインダーを時々使用したいと思います。

UpdateModelを使用する代わりに、アクション署名でモデルバインダーを選択することは可能ですか?

ありがとう

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

asp.net-mvc-3 - MVC アプリケーションの 1 つの領域でのみ機能するカスタム モデル バインダー

Global.asax ファイルで構成されているカスタム モデル バインダーを使用しました。アプリケーションの特定の領域でのみこのモデル バインダーを使用することは可能ですか?

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

c# - global.asaxフォルダーにカスタムモデルバインダーを追加できないのはなぜですか?

次のようなカスタムモデルバインダーを設定している人々のネット全体に例があります。

しかし、それを試してみると、コンパイルされません(.Binders見つかりません)。何が得られますか?

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

asp.net-mvc-4 - Asp Net MVC 4 Web Apiのカスタムモデルバインダーでリクエストコンテンツにアクセスするにはどうすればよいですか?

前の質問で抱えていた問題をどうやって解決できるか考えていました

.net Web APIモデルバインディングが処理できなかったデータにアクセスできますか?

独自のカスタムモデルバインダーを使用できるので、完璧なケースを処理でき、予期しないデータを取得したときにログに書き込むことができます。

私は次のクラスとモデルバインダーを持っています

これが私のコントローラーメソッドです

そして、私はフィドラーを使用してそれを呼び出しています

これはうまく機能します。カスタムモデルバインダーを使用せずに、postメソッドのjsonデータからPersonオブジェクトを取得し、カスタムモデルバインダーを使用すると、常にperson(Id = 2、Name = "dave")を取得します。

問題は、カスタムモデルバインダーでJSonデータにアクセスできないように見えることです。

bindModelメソッドのmyPerson変数とmyPersonName変数はどちらもnullです。ただし、myId変数には343が入力されます。

BindModelメソッド内でjsonのデータにアクセスする方法についてのアイデアはありますか?

0 投票する
0 に答える
99 参照

c# - カスタム modelbinder により新しいデータベースが挿入される

ASP.NET MVC モデル バインディングでこの問題が発生しました。国の子オブジェクトを持つ住所オブジェクトがあります。ただし、国名にはオートコンプリートを使用しています。したがって、私の見解では、次のようなものがあります。

そして、ここにカスタムバインダーを書きました:

データ コンテキストは次のように挿入されます。

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

等...

保存するたびに、新しい国が作成され、バインダーで見つかった国の正確な仕様が使用されますが、新しい ID が使用されます。手がかりはありますか?

0 投票する
0 に答える
150 参照

c# - カスタム オブジェクトを bindingContext から取得するにはどうすればよいですか?

私が抱えている問題は、GetValue("Budget") で取得しようとするとカスタム モデル バインダーが null になることですが、ご覧のとおり、バインダーにはプレフィックスが含まれています。そこにあるメタデータを見ると、すべてのキーも取得できますが、それでもNULLです。NULL を取得する理由を誰でも説明できますか?

マイ ビュー > List.cshtml

私のViewModel > BudgetListViewModel

マイ カスタム モデル バインダー > BudgetListModelBinder

グローバサ

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

vb.net - WebAPIアクションを介して複雑なデータを受信する

複雑なWebリクエストを.Netオブジェクトに変換する方法が必要です。WebAPIはデフォルトのモデルバインダーを使用し、複雑なデータにはカスタムモデルバインダーが必要であることを理解しています。

オブジェクト

アクション(ApiController内)

そして、私はカスタムモデルバインダーのスケルトンを持っています:

質問:

actionContextを使用して、構築する必要のあるデータにアクセスするにはどうすればよいRaceListMobileModelですか?

どうすれば適切に保管できますbindingContextか?

現在、データはJSONコンテンツを含むPOSTを介して送信されています。

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

asp.net-mvc - ModelBinder を使用する前にカルチャを変更する

さまざまな言語でウェブサイトを作成したいと考えています。ActionFilterを作成できることは既に読みましたが、ちょっとした問題があります。英語とドイツ語の数値形式 ( vs. )
を操作するには、カスタム ModelBinder を作成する必要がありました。123,456,789.1123.456.789,1

この ModelBinder は、現在のカルチャを使用して、使用する形式を決定します。しかし残念なことに、ModelBinder は ActionFilter がカルチャを変更する前に使用されます。

ModelBinder がアクティブになるにカルチャを変更するにはどうすればよいですか?

0 投票する
0 に答える
380 参照

json - FlagsEnum、ModelBinders、JSONの操作

FlagsEnum(列挙型:バイト)で動作するようにModelBinderを変更するにはどうすればよいですか?コードを表示します:

コード

列挙型

クラス

Json

モデルバインダー

JSONを使用しない場合に機能し、両方のEnunをFlagsEnunとして使用します。

質問

ご覧のとおり、クラスPessoaViewModelでは、プロパティTipoはの複数の値を取ることができますTipoPessoaEnum

プロパティTipoは複数の値を取ることができるため、(JSON形式で)の配列を送信していますTipo "Tipo":["Comprador","Proprietario"]。enunsの値はどれですか。

json配列 "Tipo":["Comprador","Proprietario"]をプロパティにマップする方法はTipo??

モデルバインダー

GetValue<T>クラスのメソッドでは、CreditoImobiliarioModelBinderこれbindingContext.ValueProvider.GetValue("Tipo"); はnullを返します??

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

asp.net-mvc-3 - カスタム モデル バインド後のビュー モデルの検証

IValidatableObject次のような文字列と別のビューモデルのコレクションを含む実装するビューモデルがあります。

私の検証ではOthers、によって提供されるコントラクトを使用して、さまざまなルールに対して各オブジェクトをチェックしIValidatableObjectます。

実物の複雑な構造のため、MainViewModelモデルを再構築し、関連するコンポーネントに POST データを割り当てるカスタム モデル バインダーを作成する必要がありました。私が得ている問題は、特定のデータベースの制約に違反しているため、何も検証されず、コンテキストレベルで検証エラーが発生し、何が間違っているのかわからないことです-ビューでメソッドをModelState.IsValid呼び出すと想定しましたValidateモデルですが、それほど下がらないようです。

私のモデル バインダーは次のようになります。

どんな助けでも大歓迎です!

Validator.TryValidateObject

OK、少し近づいたようです。IValidatableObjectカスタム モデル バインダーに以下を追加することで、メソッドを実行できるようになりました。

検証メソッドをValidator.TryValidateObject呼び出し、最後のパラメーターを設定してtrueすべてのプロパティを検証するようです。validationResultsただし、意味のある方法で使用できるように、コントローラーにを取得することにこだわっています。