問題タブ [model-binding]
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 - AutoMapper はドメイン モデルを平坦化しますが、逆のことをしますか? そうでない場合、何をしますか?
ここで以前の質問の 1 つに回答があったため、AutoMapper について調べています。
AutoMapper は複雑なドメイン モデルを平坦化すると書いてありますが、逆のことをするものが必要です。ビュー モデル (フラット化されたドメイン モデル) を複雑なドメイン モデルに接続して、ビュー モデルをドメイン モデルにすばやく変換できるようにする必要があります。
ビュー モデルを取得して複雑なドメイン モデルにする AutoMapper に似たものはありますか?
asp.net-mvc - 複雑なデータ型のコレクションで UpdateModel を呼び出すと、バインドされていないすべての値がリセットされますか?
これが DefaultModelBinder クラスのバグなのか、それとも何なのかはわかりません。ただし、通常、UpdateModel は、一致が見つかったモデル以外のモデルの値を変更しません。以下を見てください。
UpdateModel が新しいPerson オブジェクトを作成し、それらの Name & Age プロパティを ValueProvider から割り当て、それらを引数 List<> に配置すると、残りのプロパティがデフォルトの初期値 (例: Id = 0) に設定されます。ここで起こっている?
html - 複数選択リストは、ASP.NET MVC のモデル バインドでどのように機能しますか?
ASP.NET MVC で選択リストを複数に設定している場合、モデル バインドはどのように機能しますか?
選択したアイテム、配列に対して何を返しますか?
asp.net-mvc - 同じページ上の ASP.NET MVC モデル バインド関連エンティティ
この問題は、私を数時間夢中にさせています...
私のドメインには、互いに関連する 2 つのエンティティがSkuあり、Item. 各 SKU には多くのアイテムを含めることができます。
エンドユーザーが SKU のいくつかのフィールドと各アイテムのいくつかのフィールドを同時に更新できるようにするページを作成しています。
SkuaとEntitySetof の両方を受け入れてから、 をItemに割り当てることで機能するコントローラー コードがいくつかあります。ItemsSku
これは機能しますが、 の 1 回の旅行に加えて、 DefaultModelBinderfor eachを 2 回旅行することに気付きました。がバインドされると、setterが呼び出され、バインダーは正しい値を含む水和コレクションを渡します。ただし、 への呼び出し後、は. これが、コントローラー コードで項目を再割り当てする必要がある理由です。アイテムがバインダーによってコレクションに転送されることを期待していました。これにより、コントローラーメソッドのパラメーターを削除できるため、アイテムごとの余分なトリップがなくなります。なぜこれが機能しないのですか?ItemSkuSkuItemsItemsitems.AssignItems.Count0Itemsitems
entity-framework - Entity Framework を使用したモデル バインド オブジェクトの永続化
これを短く簡潔にしようと思います。
ここでコントローラーを手に入れた...
myCustomObject が見栄えがする場所。しかし、エンティティフレームワークを使用してこれを保存したい場合は、次のようにする必要があります...
このマッピングの演習を行わないようにする方法はありますか?
c# - url内の固定パラメーターのセットとpostまたはquerystringからのオプションパラメーターのセットを使用したアクション
私のルートコレクションには
routers.MapRoute( "Recalculate"、 "{siteLanguage} /Formula.mvc/relcalculate/ {identifierString} / {formulaId} / {wratio} / {customRecalcString}"、new {controller = "Formula"、action = "Recalculate"、 wratio = ""、customRecalcString = ""});
マップするアクションは
ご覧のとおり、ルートの説明にないいくつかのパラメータがあります。これらはオプションのパラメータです。
POSTを使用すると、フォームに入力した値がこれらのパラメーターに適切にマップされます。
ただし、GETを使用して入力すると、変数がクエリ文字列に追加されます。
しかし、アクションに到達すると、パラメーターとクエリ文字列は空になります...
何か案は?
編集
クエリ文字列が途中で消えたようです。このEdit2
を反映するようにOPを変更しまし
たさらに調査した後、失敗したように見えるasp.net-mvcのエンコーディングアルゴリズムに帰着するようです(またはそれは私ですか?)ブラウザのアドレスバーにURLを入力すると、機能します完全に。文字列がaction=""属性値として使用されている場合にのみ、クエリ文字列は消えます。間違えない場合は、クエリ文字列の「&」をエンコードする必要があります。
Url.RouteUrl()がこれを行わないのはなぜですか?
Url.Encode()が私にあらゆる種類の雄牛を与えるのはなぜですか?値をエンコードせずにクエリ文字列部分のみをエンコードするにはどうすればよいですか?
Edit3
アクションをHtml.Encode()で囲みました。これは、コースの最初から実行する必要がありました。これで、ページが再度検証されますが、役に立ちません。
Edit4
見つけた!
基本的に失敗しているのはこのHTMLです
フォームのメソッドをgetからpostに変更するとすぐに、すべてが正常に機能します。
それは2時間よく過ごしました!
コメントに応じて
更新:
非開示パラノイアに関して、私はいくつかのものを省略しますが、ここにページの要点があります:
私はページの最初にアクションURLを定義する傾向があるので、簡単に見つけることができ、ページが散らかることはありません。また、テーブルが冒涜的であることは知っていますが、昨日無駄にした時間で、当分の間それをしなければならないでしょう。後のサイクルでプログラマーの税金を支払う必要があります。
c# - ジェネリック型の ASP.NET MVC モデル バインダー
ジェネリック型のモデル バインダーを作成することはできますか? たとえば、タイプがある場合
どのタイプの MyType でも機能するカスタム モデル バインダーを作成する方法はありますか?
ありがとう、ネイサン
asp.net-mvc - 選択した項目のみの IList のモデル バインド
アクションメソッドのセットアップがあります:
そして、私の見解では製品の表。送信時にリストに入力できるように、モデルバインディングが機能していproductsます。しかし、チェックボックスで選択された製品のみを入力したいと思います。
アクションメソッドをこれに変更することでできると思います:
チェックボックスのリストをに渡しますがtoDelete、可能であればメソッドのシグネチャを変更したくないです。
選択した項目のみを渡す方法はありますか? それとも、カスタム ModelBinder を作成する必要がありますか?
asp.net-mvc - ASP.NET MVC 1 つのフォームでオブジェクトのリストを更新しますか? (リストへのモデルバインディング)
asp.net mvc のアイテム リストの更新に関する簡単な質問です。
基本的に、オブジェクトのコレクションを返す編集アクション メソッドがあります (ちなみに、そのテーブル構造は「testID、assetID、Result」のようなリンク テーブルです)。
基本的にはこの項目を次々とフォームに表示して編集できるようにしたいです。フォームがポストバックされ、モデルバインダーがその魔法を実行します。しかし、そう簡単ではありません。
私はネットを精査しましたが、このことに関する情報の大半は少し古くなっているようです. 長い間更新されていないこの投稿に出くわしました。これは、更新のために既存のリストにバインドするべきではなく、EFまたはLinqを操作するときに問題があることを示唆しているようです。 Sqlに(私は)。
私が望むものを達成する簡単な方法はありますか? リスト モデル バインドの状態は、リリース バージョンで変更されましたか?
更新 - もう少し近づいて...
これが私の編集方法です:
そして私のフォーム:
そして、私の Edit POST メソッド:
もちろん完全ではありませんが、現在の状態では何も更新されていません。ここでトリックがありませんか?結果には更新されたエンティティが入力されるため、更新されない理由がわかりません...
更新 2: それで、私はモデル バインダーがこのようなことを行うことができないと考え始めています。そこで、私はよりハックな方法で物事を行うことに頼ってきました。誰かがこれに問題を見つけることができる場合は、私に知らせてください。参考までに - このフォームは AJAX で取得されるため、単純なメッセージではなく、ビューを返しません。新しいコードは次のとおりです。
そして、自分のリポジトリで Save を呼び出します。
前もって感謝します