問題タブ [modelbinder]

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

c# - アンチ xss 攻撃を使用して Web API の入力データをサニタイズする方法

以下は私のコードのスニペットです

モデルクラス

// Customer.cs

以下のように、モデル クラスの「名前」フィールドの値をサニタイズしたい

// CutstomModelBinder.cs

以下のように、「DefaultBinder」を「CutstomModelBinder」に変更しました

// Global.asax.cs

以下のようにコントローラクラスを書きました

// CustomerController.cs

上記のコントローラーのクラスの「Post」メソッドを以下のように呼び出すと、コントローラーのクラスの「Post」メソッドが期待どおりに呼び出されます。しかし、「CutstomModelBinder」クラスで「BindProperty」メソッドを呼び出していません。

// Program.cs

コントローラーで呼び出しを受け取る前に、共通の場所で入力データをサニタイズできるように、「DataBinders」の正しい使用方法を教えてください。

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

angularjs - asp.net 5 / mvc 6 /モデルバインダー/角度

angularで投稿すると、カテゴリやステータスなどのオブジェクトが入力されないため、わかりません。ただの製品。ただし、Request.Form リストには情報があることに注意してください。バインダーが正しく実行されていません。私は何を間違っていますか?それは任意の Web API 構成ですか? application/json、[frombody] を介してデータを送信しようとしました...オプションがありません。前もって感謝します。


モデル画像

リクエスト画像

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

javascript - モデル バインダーを使用して、フォーム + スパンの値からデータベースにデータを投稿する方法

良い時間。私は Asp.net-MVC が初めてです。

ユーザーからデータを取得するフォームがあり、このページにスパンがあり、入力のデータとスパンの値をデータベースに投稿します。

モデル バインダーを使用したかったのですが、スパンにモデルと同じ名前を付ける方法がわかりません。

ここに私の行動があります:

span は JavaScript から値を取得しています

これが私のフォームですが、Shorthand の入力の 1 つだけをここに記述します。:

spanid="selecteddate" の値をデータベースの名前付き列に投稿したいDate

どうすればそれが可能になるか、または提案としてより良い方法があれば教えていただければ幸いです。

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

asp.net-mvc - MVC5 のフォームでデータを投稿する際の無効なモデル状態

私はAsp.net MVCでまったく新しいです

フォームに入力してデータベースに投稿したいのですが、モデル Binder の検証が false です。私のモデルにある私のエラーは表示されません

短くできなかった問題が何であるかがわからないため、申し訳ありません:

ここに私のモデルがあります:

そして、これは私のフォームです:

省略形として null を許可するフォーム グループの一部を省略します。

そして、これはリクエストコントローラーでの私の作成アクションです:

誰かが私のリクエストオブジェクトを有効にするための問題を教えてくれたらありがたいです。たとえば、サーバーで必要なファーストネームにnullを入れたときにエラーをユーザーに送信する方法があれば教えてください。

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

asp.net-mvc - MVC 6 でポリモーフィック モデル バインダーとプロバイダーをコーディングする方法

この質問は、MVC3 のコンテキストで SO および他の場所で以前に尋ねられました。ASP.NET Core RC1 および RC2 に関連するビットとボブがありますが、MVC 6 で正しい方法でそれを行う方法を実際に示す単一の例はありません。 .

以下のクラスがあります

私のコントローラーには、このようなものがあります

私のクライアントは BankAccountTransactionModel1 または BankAccountTransactionModel2 のいずれかを投稿する可能性があり、カスタム モデル バインダーを使用して、抽象基本クラス BankAccountTransactionModel で定義されているプロパティ ModelType の値に基づいてバインドする具体的なモデルを決定したいと考えています。

したがって、私は次のことを行いました

1) タイプが BankAccountTransactionModel であることを確認する単純な Model Binder Provider をコーディングしました。この場合、BankAccountTransactionModelBinder のインスタンスが返されます。

2) BankAccountTransactionModel のコード化

3) 最後に、プロバイダーを Startup.cs に登録します。

プロバイダーが実際に呼び出され、モデル ビルダーの場合も同じであるという点で、すべて問題ないように見えます。ただし、モデル バインダーの BindModelAsync でロジックをコーディングしても、どこにも到達できないようです。

コード内のコメントで既に述べたように、モデル バインダーでやりたいことは、http 要求の本文、特に JSON の ModelType の値を読み取ることだけです。次に、これに基づいて、BankAccountTransactionModel1 または BankAccountTransactionModel のいずれかをインスタンス化し、最後に本文の JSON を読み取って、このインスタンスのプロパティに値を割り当てます。

これはどのように行うべきかの大まかな概算に過ぎないことは承知していますが、何らかの助けと、おそらくこれがどのように行われたか、または行われたかの例をいただければ幸いです。

ModelBinder の以下のコード行の例に出くわしました

値を読み取ることになっています。ただし、私のモデルバインダーでは機能せず、typeValue は常に以下のようなものです

私も気づいたことがあります

それはおそらく、このままでは体から何かを読み取る機会がないことを意味します.

望ましい結果を得るには、おそらくミックスに「フォーマッター」が必要ですか?

同様のカスタム モデル バインダーの参照実装が既にどこかに存在するので、おそらくいくつかの単純な mod で簡単に使用できますか?

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

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

c# - 編集モードのドロップダウンリストでasp.net mvcモデルバインダーが機能しない

モデル バインダーが編集モードのドロップダウン リストで機能しないのはなぜですか?

編集ビューで、このコードを記述し、2 つの異なる ddl をテストします。

そして私のコントローラーで

ただし、編集モードのすべてのテキストボックスはモデルバインダーで埋められますが、ドロップダウンリストでは発生しません。

なぜ ? ここに画像の説明を入力

- - - -アップデート - - - -

つまり、編集モードでは、モデルバインダーはデータベースからのすべてのデータをテキストボックスと各要素にバインドします...しかし、ドロップダウンリストでは、モデルバインダーはデータベースからのデータを選択された値としてドロップダウンリストにバインドしません

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

asp.net-mvc - カスタム ModelBinder コンストラクターは、Autofac の要求ごとの登録を使用してヒットしないようです

次のような MVC5 プロジェクトでカスタム モデルバインダーを使用しています。

public class TypedModelBinder : IModelBinder, IModelBinderProvider {...}

このクラス コンストラクターには、Autofac に注入する必要があるいくつかの依存関係があります。次に、次のようにカスタム モデル バインダーを Autofac に登録しました。

builder.RegisterType<TypedModelBinder>() .As<IModelBinderProvider>() .InstancePerRequest();

ここで、注入された依存関係のいくつかを調べたいと思います。クラス コンストラクター コードにブレークポイントを配置しましたが、新しいリクエストを行うときにヒットすることがわかりません。おそらく最初のリクエストでヒットするだけですが、デバッガがまだ接続されていないため、それを確認できません。ただし、メインのメソッドpublic virtual object BindModel(...)はヒットします。なぜコンストラクターがヒットしないのか、私は髪を引っ張っています。Autofac (MVC) が modelbinder クラスを作成して再利用する方法を知っている人はいますか? たぶん、これらはMVCによって一度だけ作成され、その後再利用されますか?