問題タブ [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.
asp.net-mvc - Nhibernate、MVC、および ModelBinders
モデル バインダーを Nhibernate で構成したい:
ので、私は持っています:
コントローラーのアクションをマークして、正しいモデル バインダーを使用する属性があります。
これは正常に動作し、私の GigModelBinder には正しい VenueManger と ArtistManager が注入されています
ただし、アプリケーションの開始時に追加する場合:
コントローラーアクションでは、次を使用します。
例えば:
VenueManger と ArtistManager は GigModelBinder に挿入されていません。
私が間違っていることはありますか?
.net - ホワイトリスト モデル バインディングが複雑なプロパティで機能しないようです
次のような POST アクションがあります。
デフォルトのモデル バインダーを使用しており、資格情報は User オブジェクトのプロパティです。Credentials には 2 つのフィールド (emailAddress と password) があります。ホワイトリストを削除すると、資格情報オブジェクトがバインドされ、すべてが期待どおりに機能します。ただし、そのホワイトリストを提供すると、userrole はバインドされますが、複雑なプロパティの電子メールとパスワードはバインドされません。フォームの値を確認しましたが、それらがリストされていて、オブジェクトと一致しているため、気になります。
何か不足していますか?
asp.net-mvc - .Net mvc バインダー
Microsoft の mvc フレームワークのモデル バインダーに同意できません。読み取り専用でタイプが guid の id プロパティを持つドメイン モデルの基本クラスがあります。ただし、読み取り専用であるため、バインダーはプロパティの値を設定できません。それで、私は完全にめちゃくちゃですか、それとも誰かが私の問題を解決できますか?
編集:いつものように、私が言及するのを忘れた追加情報があります。バインダーにidプロパティをバインドさせたいのは、それが別のモデルオブジェクトに関連するオブジェクトである場合だけです。この場合のように、投稿のカテゴリを選択しており、ORM の ID のみが必要です。
c# - ASP.NET MVC のバインドされたオブジェクトのオプション プロパティ
「新規顧客」フォームを作成しようとしているので、既定のモデル バインダーを使用して Customer オブジェクトを作成しています。
唯一の問題は、Customer オブジェクトに不要なプロパティがいくつかあることです。これらのフィールドを空白のままにすると、ASP.NET MVC は「値が必要です」というモデル エラーを自動的にスローします。
これらのプロパティがオプションであることをフレームワークに通知するにはどうすればよいですか?
asp.net-mvc - ASP.NET MVC UpdateModel の空のプロパティ
次のモデルを考えると、
意見、
およびコントローラー
私の b インスタンスには、Name に空の文字列を持つ A のプロパティが含まれます。
名前に値が入力されていない場合、UpdateModel に A プロパティを null に設定させる方法はありますか?
明確にするために、これは単純なケースです。私の現実世界のシナリオには、この類の何百ものプロパティを持つデータ モデルが含まれています。これらのデータ モデルの定義は、私の手に負えません。したがって、一般的なケースの解決策が必要です。つまり、値が入力されていない場合はプロパティを作成しないでください。
さらなる明確化: これは編集シナリオでも機能する必要があります。つまり、A.Name が "foo" に設定された b のインスタンスは、A.Name を "" に設定するように編集されます。A を null にする必要があります。
asp.net-mvc - ModelBinders の登録
ベータ版から RC1 MVC にアップデートしました。
Application_start (global.ascx) に次のコードがあります。
これにより、次の例外が発生します....
メソッドが見つかりません: System.Collections.Generic.IDictionary`2 System.Web.Mvc.ModelBinders.get_Binders()'.
asp.net-mvc - モデル バインダー内でのモデル バインディング
まず、ここで我慢してください。フォーム データをカスタム オブジェクトに正常にマッピングするカスタム モデル バインダーがあります。このモデル バインダー内では、フォーム項目も別のカスタム オブジェクトにマップされます。私ができるはずだと感じているのは、この 2 番目のマッピングを処理する別のモデル バインダーを作成することです。これは簡易版です。
カスタム オブジェクト:
フォームが SubCategories の一連の Id を返す場合、データ リポジトリに移動して SubCategory オブジェクトをハイドレートする必要があります。フォームから、サブカテゴリのリストが次の形式で送信されます。
カテゴリをマップするカスタムを作成するのは明らかに簡単ですが、サブカテゴリをマップするモデル バインダーを作成する (モデル バインダー内でデータ リポジトリからクエリを実行する) のは少し難しいことがわかります。
申し訳ありませんが、読んでいただきありがとうございます。これを明確にするために何か言えることがあれば教えてください。
asp.net-mvc - MVC コントローラーのアクション メソッドのインターセプト
一般的な方法で DB からオブジェクトをリロードできる O/R マッパーを使用します。それらをリロードするために、マップされたオブジェクトの作成直後にリクエストを傍受できるようにしたいと考えています。
ActionFilters はもちろんありますが、問題は、ActionFilters (または私が見た例) が、オブジェクトが作成された後ではなく、フォームによって提供されたデータを処理できることです。
コントローラーのオーバーライド可能なメソッドを調べましたが、私の目を引く明白なものは何も見つかりませんでした。これを行う方法を知っている人はいますか?
ご提案ありがとうございます。
ナセル