問題タブ [defaultmodelbinder]

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 に答える
2163 参照

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

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

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

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

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

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

asp.net-mvc - HtmlAttributes ディクショナリが正しくバインドされていません

私が書いている html ヘルパーにモデル バインディングの問題があります。私は自分のモデルでhtml属性を処理するプロパティを宣言しました。

次に、 Scott Hanselman の投稿のように次の html をレンダリングします。

しかし、コールバック時に、DefaultModelBinder は値を文字列配列として作成します。これにより、次に html 値をレンダリングするときに;

次の HTML を取得します。

これは明らかに、文字列配列のデフォルトの ToString 表現です。値は最初の要素です!!

ディクショナリのオブジェクトとして宣言されている値型パラメーターについて、デフォルトのモデル バインダーが混乱しているようです。Dictionary<string,object>Html ヘルパーのソース コードで確認したように、htmlAttributes を として宣言することで、規則に従っていると確信してい ました。ここで明らかな何かが欠けていますか?

編集:

より多くの情報を提供するための更新です。私が見ているバインディングの問題は$.post、データが JQuery の .serialize(); を使用してシリアル化されている JQuery AJAX ポスト コールバックの結果です。送信されたデータを検査すると、すべてが正常に見えます。

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

ajax - DefaultModelBinder コードが MVC リモート検証呼び出しで呼び出されない

継承元の DefaultModelBinder があり、BindModel 呼び出しと OnPropertyValidating 呼び出しをオーバーライドしようとしました。

ただし、ASP.NET MVC の組み込みのリモート検証を使用する場合、コントローラー アクションが呼び出されると、DefaultModelBinder がバイパスされるため、必要な方法でバインド/検証されません。

global.asax に登録しましたが、何かアイデアはありますか?

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

asp.net-mvc-4 - サブクラス MVC4 を返す DefaultModelBinder

この DefaultModelBinder について数日間読もうとしていますが、まだ非常に混乱しています。MVC 4 & EF 5 TablePerHiearchy 構造を使用しています。

私の問題は、Resource の基本クラスがあることです。

サブクラス (DVD、EBook、Book など) を持つ

コントローラー コードでカスタム ModelBinder を使用している

ビューをリソース (DVD、ブック、またはその他のタイプとしてキャスト) に渡すことができるように

部分ビュー内のスイッチで発生する派生プロパティに基づいてバインドします。

私の最初の問題は、フォームを投稿したときに、キャストされた型ではなくリソースとして返されることでした (そのため、すべての派生型プロパティが失われていました)。これが、ResourceModelBinder を作成した理由です。キャストされた型を正しくバインド/ポストバックするようになりましたが、Title、ResourceID、ResourceTypeID などのリソースの基本クラス プロパティはバインドしません。

基本リソースクラスのプロパティと派生型のプロパティを実際にバインドするために、私が欠けているものを理解するのを手伝ってくれる人はいますか?

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

asp.net-mvc-4 - MVC4 ApiController を使用するときに JSON 入力パラメータをサニタイズする方法は?

AntiXSS に基づいて HTML サニタイザーを作成し、標準の投稿リクエストで正常に動作するデフォルトのモデル バインダーをオーバーライドして、ユーザー入力文字列を自動的にサニタイズしました。ただし、新しい ApiController を使用する場合、デフォルトのモデル バインダーが呼び出されることはありません。これは、この新しい MVC コントローラーが代わりに JSON フォーマッターを使用して、リクエストの本文からの入力データをバインドするためだと思います。

では、JSON によってバインドされた後に文字列プロパティを変更できるように、フォーマッタを拡張するにはどうすればよいでしょうか? これをコントローラーレベルで実装する必要はなく、コントローラーに到達する前に実装する方法が必要です。

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

c# - ASP.NET パイプライン内で DefaultModelBinder が呼び出されるのはいつですか?

DefaultModelBinderが ASP.NET パイプライン内で呼び出されるタイミングを知りたいですか?

背景:現在のスレッドのカルチャを設定できる適切な場所を見つけたいです。

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

model-view-controller - カスタム モデル バインドで上書きする必要があるメソッドまたはプロパティはどれですか?

2 つの機能を必要とする MVC アプリのカスタム バインディング シナリオがあります。

1)フォーム/クエリ プロパティをクラス プロパティにマッピングできる、汎用で再利用可能なカスタム バインダー。

2)特定のフォーム/クエリ パラメータをディクショナリ (または 2 つのプロパティ) に分割する、クラス固有のカスタム バインダー。

最初の要件は、Google で見つけた解決策で達成されました (見つけた場所を忘れたため、リンクを提供できないことをお詫びします)。

要するに、2つの部分があります

これは次のように使用されます

2枚目は

私の問題は要件#2にあります。この場合、SearchRequest クラスに追加のプロパティがあります。

Dictionary のキーはフィールド名で、Dictionary 項目の値は順序 (昇順または降順) です。

のサンプル使用

フォーム/クエリの値をバインドするために必要なロジックは次のようになります

Alias をサポートするために DefaultModelBinder から再度継承する必要があることはわかっています... または、この場合は AliasModelBinder (これは DefaultModelBinder から継承されます) を使用して Alias をサポートしますが、どのメソッドをオーバーライドすればよいかわからないという問題があります。DefaultModelBinder を再利用する最善の方法に関する情報はほとんどないようです (つまり、ほとんどありません)。

私のもう 1 つの質問は、2 つのカスタム モデル バインダーを使用する最善の方法に関するものです。私の知る限り、モデル バインダー チェーンはありません。#2 のソリューションがソリューション #1 について明示的に知らなくても、要件 #2 を達成する方法はありますか? 要件 2 は、単一の値を取り、それを辞書に分割することを考慮しています。SortOrder プロパティの値がエイリアス化されたフォーム/クエリ パラメータに由来することを本当に気にしますか?

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

ありがとうございました。

ジェイソン