問題タブ [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.
asp.net-mvc - Google Chrome クライアントでの ASP.NET MVC ルーティングの問題
私の Silverlight 4 アプリは、ASP.NET MVC 2 Web アプリケーションでホストされています。Internet Explorer 8 で閲覧すると問題なく動作しますが、Google Chrome (バージョン 5) は ASP.NET コントローラーを見つけることができません。具体的には、次の ASP.NET コントローラーは Chrome と IE の両方で動作します。
[OutputCache] 属性のコメントを外すと、IE では機能しますが、Chrome では機能しません。また、コントローラーでカスタム モデル バインディングを使用するので、次のように記述します。
IEでも動作しますが、リソースが見つからないというエラーメッセージが表示されるChromeでは動作しません。もちろん、aspnet_isapi.dll を介してすべての要求を処理するように IIS 6 を構成し、Application_Start() メソッド内の Web アプリの Global.asax にカスタム モデル バインダーを登録しました。誰かが原因を説明できますか? ありがとうございました。
asp.net-mvc - MVC 2 のカスタム モデル バインダーを使用したカスタム検証属性
私が含めたコードの量をお詫び申し上げます。最小限に抑えるように努めてきました。
モデルにカスタム バリデーター属性とカスタム モデル バインダーを設定しようとしています。Attribute と Binder は別々にうまく機能しますが、両方ある場合、Validation Attribute は機能しなくなります。
読みやすくするために切り取ったコードを次に示します。global.asax のコードを省略した場合、カスタム検証は起動しますが、カスタム バインダーを有効にしている場合は起動しません。
検証属性。
私のモデルでの属性の使用;
カスタム モデル バインダー;
グローバル asax;
asp.net-mvc - カスタムモデルバインダー
境界モデルを検証するカスタム モデルバインダーを作成したいと考えています。これのいくつかの例を見つけましたが、正常に機能します。しかし、モデルにエラーがある場合、ユーザーを元のページに戻すこともできるようにしたいと考えています。
これを行うことは可能ですか?これを行うことによって明らかな副作用はありますか?
私が達成したいのは、コントローラーが常に有効なコマンドを取得することです。そのため、アクション メソッドで model.IsValid() をチェックする必要はありません。
asp.net-mvc - カスタム ModelBinder 内から UpdateModel を呼び出すにはどうすればよいですか? (MVC)
モデルの複合型用にいくつかのカスタム バインダーを作成しています。私のモデルは、独自の個別のバインダーを持つオブジェクトで構成されています。基本オブジェクトに汚い仕事をさせてから、標準の ModelBinder ルーティングに渡すことによって、カプセル化された複雑なオブジェクトを設定します。どうすればいいですか?
説明のために、非常に単純な例を作成しました。
モデルにこれらのオブジェクトが含まれているとします。
そして、これらのモデルごとに次のバインダーがあります。PersonBinder が PhoneNumber を設定する必要があるわけではありませんが、PhoneNumber バインダーでコードを複製したくありません。標準の Binder ルーティングに戻すには、どのように委任しますか?
そしてもちろん、ModelBinders を Global.asax.cs ファイルに登録しました。
ありがとう、
ジャスティン
entity-framework - ASP.NET MVC ソリューションで Entity Framework を使用してドロップダウン リストの選択を保存する
ドロップダウンリストの選択とPOCO EFでの選択の永続化のための適切なパターンに関するアドバイスを探しています。
IEnumerable<Country>
ビュー モデルに、Country が EF 経由で読み込まれた POCO であるリストがあります。ビュー モデルには、Country プロパティで現在の値またはユーザーが選択した値を取得する Address プロパティがあります。ビュー内で、Html.DropdownListFor() を介してこれらを表示します。
これまでのところ、すべてがポストバックで機能し、デフォルトの ModelBinder を使用して、Address.Country が入力されたビュー モデルを提供します。ただし、もちろん Address.Country には、デフォルトのモデル バインディングの Id フィールドのみが入力されます。
EF を介してアドレスの更新を DB に送り返そうとすると、完全なオブジェクト グラフが読み込まれておらず、ID が設定されているだけの新しいオブジェクトと見なされるため、失敗します。
これで、選択した ID に基づいて保存する前に、データベースから完全な Country オブジェクトをポストバックの Address.Country プロパティに読み込むことで、これを修正できます。しかし、これは、単純なオブジェクト グラフを超えて、大変な作業のように思えます。
私が考えることができる最も「エレガントな」ソリューションは、Country のカスタム モデル バインダーですが、完全な EF オブジェクトを取得するためのリポジトリについて Model Binder が知る必要があります。ドロップダウン リストで使用される他のすべてのエンティティについても、これを繰り返す必要があります。
これが理にかなっていることを願っており、他の人がこれをどのように行っているかについてのフィードバックをいただければ幸いです.
asp.net-mvc-2 - モデル バインディング中にアクションを取得する
モデル バインディング フェーズ中にアクションを取得し、属性を読み取る方法はありますか?
シナリオは次のとおりです。
特定のデータ型に対してデフォルトのモデル バインダーをセットアップしましたが、その使用方法 (アクションの属性によって制御される) によっては、データのセットを無視する必要があります。
コントローラー コンテキストで RouteData を使用して、データを取得するために使用できるアクション名を確認できますが、その情報が既に利用可能であるかどうか疑問に思いました。
さらに、問題のアクションが非同期のものである場合は、それを検索するためにより多くの処理が必要になります...
asp.net-mvc - ASP.Net MVC ModelBindingContextクラス-そのモデル値はどのように入力されますか?
モデルバインダーがASP.NetMVCでどのように機能するかについて少し頭を悩ませています。
具体的には、BindModel()メソッドにはモデル名とタイプを保持するModelBindingContextパラメーターがありますが、ModelBindingContextがこれらの値を受け取る方法がわかりません。
MVCモデルは、投稿されたフォーム値、クエリ文字列パラメーター、またはその他のデータソースから入力する必要があります。しかし、ModelBindingContextに渡されるモデルタイプを決定するメカニズムは何ですか?また、投稿された個々の値を含む単純なリストでさえ、あるモデルタイプが別のモデルタイプよりもどのように選択されるのでしょうか?
ModelBindingContextは、渡されているモデルのタイプを「認識」しているように見えますが、それがどこから来ているのか、またはモデルの作成に関連するワークフローがわかりません。
validation - カスタム モデル バインダーでの DataAnnotations の検証
MVC プロジェクトで List のカスタム モデル バインダーを作成しましたが、このバインダーを DataAnnotations 検証属性に対して検証する方法に行き詰まっています。
同様のシナリオについて話しているインターウェブでいくつかの投稿を見つけましたが、特定のシナリオで機能するものを見つけることができませんでした.
モデル バインダー コード:
私のモデルのメタデータ:
RequiredIfTrue 属性は、MVC Foolproof Validationライブラリからのものです。どうやらそれは十分に確実ではありません!
asp.net-mvc - ASP.NETMVC-IDフィールドのカスタムモデルバインダー
私は次のエンティティを持っています:
これで、カテゴリの追加ビュー内に、SectionIDを入力するためのテキストボックスがあります。例:
次のロジックを持つカスタムモデルバインダーを作成したいと思います。
モデルキーがIDで終わり、値がある場合(値がテキストボックスに挿入された場合)、親オブジェクト(この例ではセクション)をSection.GetById(入力された値)に設定します。それ以外の場合は、親オブジェクトをnullに設定します。
これはしばらくの間私を困惑させてきたので、私はここでの助けに本当に感謝します。ありがとう
asp.net - DropDownList のカスタム モデル バインダーが正しい値を選択しない
ビューで次のように定義された Section DropDownList を処理するために、独自のカスタム モデル バインダーを作成しました。
そして、ここに私のモデルバインダーがあります:
今私のコントローラ内で私は言うことができます:
これは適切に検証され、モデルが更新されるとセクションの正しい値が割り当てられますが、別のプロパティが検証されない場合は正しい値が選択されません。
誰かがこれを行う方法を教えていただければ幸いです。ありがとう