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

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

asp.net-mvc - クッキーの問題から引っ張るカスタム Model-Binder?

私は次のことをしようとしています。

デフォルトのモデル バインダーを使用して、クエリ文字列値からオブジェクトをバインドします。
それが失敗した場合は、Cookie 値からオブジェクトをバインドしようとします。

ただし、このオブジェクトでデータ注釈を使用しており、次の問題があります。

  1. クエリ文字列パラメーターがない場合、既定のモデル バインダーは必須フィールドの検証エラーを登録しません。プロパティ自体がクエリ文字列コレクションに含まれていない場合、これらのバリデーターも起動しないようです。この動作を変更するにはどうすればよいですか? クエリ文字列に含まれていない場合、必須フィールドをエラーにしたいと思います。
  2. モデルの検証エラーが発生した場合は、Cookie からモデルを読み込み、オブジェクトを再検証したいと考えています。自分で入力したオブジェクトをモデル バインダーで検証する方法がわかりません。

これが私がこれまでに持っているものです。

これを適切に行う方法についての助けをいただければ幸いです。

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

asp.net-mvc - View が Model を Action に POST した場合、元のデータベースにモデルを保存するにはどうすればよいですか?

私はちょっと混乱しています...

ID を取得し、オブジェクトをロードして、そのオブジェクトのタイプのモデルにバインドされているビューに渡すアクションが 1 つあります。

ビューによって提供されたフォームでデータを編集した後、モデルとまったく同じタイプのオブジェクトを受け入れる別のアクションに POST します。

ただし、この時点で単に Repository.Save を呼び出すことはできません。ビューに送信された元のデータベース クエリのオブジェクトとは関連付けられていない、新しいオブジェクトができたと思います。

ビューから新しいオブジェクトを取得する代わりに、以前にクエリされたオブジェクトを更新し、変更を DB に保存するにはどうすればよいでしょうか?

DB からオブジェクトの新しいインスタンスを取得し、View の返されたオブジェクトをそれに割り当ててから Repo.Save() を試みましたが、まだそのような運はありません。

ここで何が間違っていますか?

コントローラーコード:

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

asp.net-mvc - asp.net mvc2のテキストボックスから値を取得する方法

私はasp.net mvcでチャートプロジェクトに取り組んでいます。テキスト ボックスから値を取得して一連のグラフに適用する方法を教えてください。

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

asp.net-mvc - ASP.NET コレクション モデル バインドのネストされたフォームの問題

オブジェクト Cart にバインドされた部分ビューがあります。Cart には CartLines のコレクションがあります。私の見解は以下の通りです:

注意すべき点が 2 つあります。1 つ目は、項目を削除するために 1 行ごとにフォームを使用していることです。

2 つ目は、ユーザーが項目の数量を変更できるようにしてから、更新ボタンをクリックして、すべての変更をコントローラー アクションに渡すことを試みたことです。

私は製品と数量だけに関心があるので、辞書を使用していることに注意してください。cart.UpdateItem を呼び出す前に製品を再度取得する必要があるという事実はあまり好きではありませんが、ID の代わりに製品をモデルからアクションに渡す方法がわかりませんでした。

ただし、主な問題は、値をポストバックできるようにカート全体をフォームにラップしてから、IE で正しく動作しない理由を考えるのにかなりの時間を費やしたことです。ネストされたフォーム

だから私はこれを回避する方法にこだわっています。アイテムを個別に削除する機能が必要ですが、ユーザーがアイテムの数量を変更して、すべての変更を一度にコントローラーに渡すことができるようにします。投稿を強制するにはJavaScriptを使用する必要があり、JavaScriptを有効にしなくてもすべてが機能する必要があるため、削除アクションにリンクを使用できません。

[アップデート]

カスタム モデル バインダーの更新を許可することは、より良い解決策でしょうか? このようにして、ビュー内で変更を行い、カート オブジェクトをコントローラーに戻すことができました。ただし、これが子コレクション (Cart.CartItems) で可能かどうかはわかりません。Amazon などのサイトを調べたところ、カート全体がフォームにラップされ、JavaScript が無効になっていると、グローバル更新ボタンと個々のアイテム削除ボタンの両方が同じアクションにポストバックされているように見えます。どんな助けでも大歓迎です。

ありがとう、ベン

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

c# - ASP.NET MVC 2.0 - IListチェックボックス

これを処理する最良の方法は何ですか:

基本的に、利用可能なすべてのオプションが にありますallOptions。チェックされたときに別のOptionものをリストに入れるチェックボックスが必要です。どうすればこれを達成できますか? 事後にバインドするのが最善でしょうか?idQuoteItem.optionsIList<bool>

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

asp.net-mvc - マークアップなしでデータを表示する ASP.NET MVC 2 UI テンプレート。直し方?

EditorFor( model lambda, "viewTemplateName") を使用すると、出力がまったく期待どおりになりません。これによりエラーは発生しませんが、マークアップなしで出力がレンダリングされます。私は何を間違っていますか?

出力:

期待される出力 (id の List [] インデックスもレンダリングする方法を理解する必要がありますが、まだその問題は解決していません):

私のクラス:

私のコントローラー:

私のインデックス ビュー:

My Classroom Template (モデルではなくアイテムを使用できるように、m => アイテムに注意してください):

私の生徒のテンプレート:

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

c# - インターフェイスの実装におけるタイプ固有のプロパティの変更

これが私が持っているものです:

RenderPartialを実行して他のタイプ固有のフィールドを追加するときに、メインの編集フォームがIEventから継承するため、ASP.NETMVCでカスタムモデルバインダーに取り組んでいます。

モデルバインダーにたどり着くと、タイプのすべてのキー/値を確認できます。これは良いことです。今、私はこれをしたい:

基本的に、IEvent変数が必要であり、IEventを実装する特定のイベントタイプを作成し、タイプ固有のフィールドを設定します。Visual Studioが教えてくれるのは、BirthdayEventフィールドにアクセスできないということです。

私はこれを理解していますが、私が何をする必要があるのか​​理解できないようです。

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

asp.net-mvc - 同じプロパティ名を持つ複数のタイプへのモデルのバインド

オーディエンスとロケールの2つのリストボックスを含むビューがあります

両方の選択されたインデックスを含むフォームをコントローラーに送信しようとしています。コントローラーには、この署名のアクションメソッドがあります。

私が抱えている問題は、オーディエンスとロケールの両方にIDプロパティがあるため、モデルバインダーは、選択した値を割り当てる場所について少し混乱しています。オーディエンスには「2」、ロケールには「1」が必要な場合、両方に値「1」が割り当てられます。

問題は、送信時にページを2つで区別するにはどうすればよいですか?LocaleのID値の前に「locale。」を付けようとしました。そのため、データとしてControllerに渡されるパラメーター文字列は次のようになります "&locale.id=1&audience.id=2"が、機能しないようです。

助言がありますか?さらに情報が必要な場合は、提供します。

ありがとう

デイブ

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

jquery - $.get() 経由で JSON を渡すとモデル バインディングが失敗する

この質問は、これに関連しています

次を使用して、ページの選択要素から属性と値を抽出しています。

基本的に、選択ボックスの属性を表すオブジェクトの配列を取得した後、それをサーバーに渡すことができるデータ文字列に変換したいと考えています

返される JSON は次のとおりです。

そして、次のようにサーバーに渡します。

サーバー上のコードはあるが、値を取得していない & モデルバインディングが失敗している

これで明らかに間違っていることを誰かが見ることができますか?