問題タブ [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.

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

asp.net-mvc - URI の時刻部分を含む mvc.net DateTime

分単位で指定できる範囲内の時系列データを返す一連のアクションがあります。それらはクエリ文字列、
つまり
/mycontroller/myaction?from=20091201 10:31&to=20091202 10:34
URL エンコードされたコロンの有無にかかわらず正常に動作しますが、きれいな URL があればいいと思い /mycontroller/myaction/from-20091201 10:31/to-20091202 10:34
ましたが、IIS は URI のコロンが好きではないため、今では IIS の耳に恐怖を与えています。 Bad Request の応答。

私の質問は、そこに時間を維持できるようにするための推奨/標準的な行動方針は何ですか?

独自の日時形式を解析するには、カスタム ModelBinder を作成する必要がありますか? アクションは と の文字列を取りfromtoカスタム形式で解析する必要があります"YYYYMMDD-HHmm"。カスタム形式をどこかに指定できますか? もしそうならどこ?それとも、これを愚かなこととしてあきらめて、クエリ文字列パラメーターに固執する必要がありますか?

ああ、多くの人が RESTful URL について話しているのを目にします。私が読んだ限りでは、クエリ文字列が RESTful ではないということは何もありません。それは、既存の HTTP アクション タイプの適切な使用に関するものです。

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

asp.net-mvc - 入力モデルのプロパティに ModelBinder 属性を追加できません

入力モデルのプロパティに使用するモデル バインダーを指定したいと考えています。

ただし、ModelBinderAttribute をプロパティに適用することはできません。メソッドパラメーターに適用できるので、これはばかげているようです。この制限を回避するにはどうすればよいですか?

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

asp.net-mvc - ASP.NET MVC 2 でのカスタム モデル バインダーの単体テスト

ASP.NET MVC 2 を使用するプロジェクトでカスタム モデル バインダーを作成しました。このモデル バインダーは、モデルの 2 つのフィールドのみをバインドします。

標準の VS 単体テストを使用して、このモデル バインダーをテストするにはどうすればよいですか? グーグルで数時間を費やし、いくつかの例を見つけました(http://www.hanselman.com/blog/SplittingDateTimeUnitTestingASPNETMVCCustomModelBinders.aspx)が、この例はMVC1用であり、MVC2を使用している場合は機能しません.

私はあなたの助けに感謝します。

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

asp.net - 複数選択を使用したasp.net mvcの強く型付けされたビューモデル

MultiSelect ボックスからフォームの値を強く型付けされたビューにバインドする方法を知りたいです。

明らかに、フォームが送信されると、複数選択ボックスは、選択された値の区切り文字列を送信します...この値の文字列をオブジェクトのリストに変換して、モデルに添付して更新する最良の方法は何ですか?

コントローラー内でモデルを更新するとき、私は以下のように UpdateModel を使用しています:

ただし、何らかの方法で文字列から値をオブジェクトに戻す必要があります。

モデルバインダーと関係があると思いますが、これを行う方法の明確な例が見つかりません。

ありがとう!!ポール

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

asp.net-mvc - ViewModel を他の ViewModelBinders にバインドする

ビューモデル(HouseVMと呼びましょう)がありますが、その中に別のビューモデル(KitchenVM)が含まれています。KitchenVM 用のカスタム モデル バインダーは既に作成しています。今、HouseVM モデルバインダーを作成しています。HouseVM モデル バインダー内で KitchenVM に対して既に行ったモデル バインディングにアクセスするにはどうすればよいですか?

注:私はこの投稿を見ました

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

asp.net-mvc - ASP.NET MVC: 複数のモデル バインディング

このように、ある種のマルチバインダーを使用することは可能ですか?

私もこのようにデフォルトのバインダーを設定した場合:

私が望むのは、DataAnnotationsBinder (stringlength、regexps などのデータを検証する) と、さらにフィールド値を設定するカスタム バインダーの利点を得ることです。

EntitiyFramework を使用し、DataAnnotations と組み合わせて、次のようなコンストラクトになるため、このためにバインダーを 1 つだけ作成することはできません。

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

asp.net-mvc - ModelBinder を使用して、ユーザーに表示される値を修正するにはどうすればよいですか?

ユーザーに表示される値を修正する ASP.NET MVC のモデルバインダーを作成したいと考えています。たぶん、値の最初の文字を大文字にしたり、文字列をトリムしたりします。

この動作をモデルバインダー内にカプセル化したいと思います。

たとえば、これはTrimModelBinder文字列をトリミングするための a です。(ここから取得)

これにより値がモデルに設定されますが、ページが再表示されると元の値が保持されます (ModelState にあるため)。

トリミングされた値をユーザーに再表示したいだけです。

などOnPropertyValidated、オーバーライドするメソッドはたくさんあります。OnPropertyValidating

おそらく機能させることができますが、間違ったメソッドをオーバーライドした場合に意図しない副作用が発生することは望ましくありません。

ビューを生成しているときに、Trim() などのロジックを実行したくありません。このロジックをモデルバインダー内に完全にカプセル化したいと考えています。

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

asp.net-mvc - asp.net mvc:TryUpdateModelの戻り値またはModelState.IsValid?

バインダーで検証を行っているのですが、戻り値を確認する必要があるのではないかと思います。以下のオプション1では、ケース1とケース2に違いがありますか?TryUpdateModelがtrueを返す可能性はないようですが、ModelState.IsValidはfalseです。

オプション1:

オプション2:

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

asp.net-mvc - ASP.NET MVC 1.0 - 辞書のモデル バインダー

Dictionary (およびこの質問には関係のないもの) を含む ViewModel クラスがあります

次に、辞書を扱うGET/アクションがいくつかあります。POSTこのGETアクションは、最初Dictionary<int, string>にデータベースからのデータを入力してから、次の値を返しますView

  • .Keys は隠しフィールドになります。と
  • .Values は、ユーザーが編集するためのテキストエリアになります。

ユーザーはこのフォームを送信し、アクションを呼び出しPOSTます。入力を処理しようとします (プロセスは関係ありません)。Key/Valueペアの一部は有効で、一部は無効です。

無効なペアがある場合、アクションはViewModelPOSTを再構築しますが、今回はディクショナリに無効なペアのみを含める必要があり、ユーザーが修正して再送信できるように同じビューを再表示します。

質問:これを達成するための最も簡単でクリーンな方法は何ですか?

私がこれまでに持っているもの(正常に動作しています)、コントローラー:

そしてビュー:

問題は、モデル バインダーを喜ばせるために、ビューのフィールドに連続した ID を付けなければならないことです。ただし、ディクショナリを繰り返し処理してキーと値のペアを抽出する必要があるため、for (var i = 0; i < Model.Data.Count; i++) {...}ループになることはありません。

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

asp.net-mvc - DDD に適した ASP.NET MVC モデル バインダー?

ドメイン層で定義された不変値オブジェクトをインスタンス化できるカスタム モデル バインダーの価値を検討しています。次に、それらをスタックに渡し、適切なエンティティに設定します。誰も試したことがありますか?運が良かった?ばかげた考えだと思いますか?