問題タブ [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 投票する
2 に答える
1592 参照

asp.net-mvc-2 - ポストバックデータをタイプListのコントローラーアクションパラメーターにバインドするモデル

私はタイプの強いタイプビューを持っています

外側のリストには、常に2つのリストがありList<MyViewModelClass>ます。2つの外側のリストのそれぞれについて、チェックボックスのグループを表示したいと思います。各セットには、任意の数の選択肢があります。

私のビューモデルクラスは次のようになります。

したがって、最終的なビューは次のようになります。


該当するものを選択してください。

選択肢の最初のセット:

  • xオプション1
  • xオプション2
  • xオプション3

選択肢の2番目のセット:

  • x2番目のオプション1
  • x2番目のオプション2
  • x2番目のオプション3
  • x2番目のオプション4

チェックボックスが表示されMyViewModelClass.Area.Name、その値がに関連付けられている必要がありますMyViewModelClass.Area.Id。チェック状態はもちろんに関連していMyViewModel.IsCheckedます。

質問

チェックボックスを表示するには、どのように使用するHtml.CheckBox()か、Html.CheckBoxFor()ヘルパーを使用する必要がありますか?もちろん、ポストバックでこれらの値をサーバーに戻す必要があります。

次のいずれかのようなコントローラーアクションが必要です。

それが物事を簡単にするなら、私は次のような別のビューモデルタイプを作ることができます:

また、コントローラーアクションの最初のバージョンを次のように変更します。

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

javascript - JavaScript データ オブジェクトをポストするときの List<> へのモデル バインド

次のJavaScriptデータオブジェクトを投稿しようとしています:

ここで、「データ」は次の構造を取ります

これにより、サイトとパネルの両方が正しくインスタンス化され、データにバインドされますが、List オブジェクトは null です。

ここで、「データ」オブジェクトの ConfiguredFactsheetId プロパティが id 値の単なる配列であることに気付きました。各値が ConfiguredFactsheet オブジェクトの configuredFactsheetId プロパティに対応することを指定する必要がありますか? もしそうなら、私のデータオブジェクトは似たような形をとるでしょう

しかし、オブジェクトに新しい ConfiguredFactsheetId を追加するたびに、以前のものを上書きするだけなので、これは明らかに機能しません。

次の形式のクエリ文字列を作成すれば、これを実行できることがわかります

しかし、すべてを単一のデータオブジェクトに含めたい

助言がありますか?何か (おそらくすべて!) をもっと明確に説明する必要がありますか?

ありがとう

デイブ

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

c# - ネストされた子モデルと ASP.NET MVC の PartialViews を使用したモデル バインディング

次のタイプとクラスがあります。

Pageビューでインスタンスを編集したいEdit.aspxEditableContentは他のモデルにもアタッチされているため、厳密に型指定され、インスタンスを取得してレンダリングするPartialView呼び出しがあります。ContentEditor.ascxEditableContent

レンダリング部分はすべて正常に動作しますが、投稿すると、内部のすべてがContentEditorバインドされていません。つまりPage.Contentnull.

PartialView では、強く型付けされた Html ヘルパーを使用してこれを行います。

しかし、 によってレンダリングされるフォーム上の入力要素は、その属性のプレフィックスをContentEditor.ascx取得しないため、値は にバインドされません。ContentidPage

これを克服するために、ゆるく型付けされたヘルパーを使用してみました:

そして、私List<T>が何かのプロパティを扱っているとき、それは非常に醜くなります。次に、コレクション インデックスを手動でレンダリングする必要があります。

Page と EditableContent の両方をパラメーターとしてコントローラー アクションに配置する必要がありますか?:

私は何が欠けていますか?

0 投票する
4 に答える
27046 参照

asp.net-mvc - Ajax.BeginForm を使用して HttpPostedFileBase をバインドする

HttpPostedFileBase のデフォルトのバインダーを使用して、モデルとファイルのアップロードをバインドするフォームがあります。

これは、Html.BeginForm() を使用する場合にうまく機能します。ただし、AJAX を使用して同じアクションを実行したかったので、これを Ajax.BeginForm() に置き換え、それに応じてパラメーターを変更しました。

モデルは引き続き正しくバインドされますが、ファイルのアップロードを HttpPostedFileBase にバインドできません。

これにより、モデルとファイルのアップロードがバインドされます。

これはモデルのみをバインドします:

コントローラーのアクション:

これは可能である必要がありますか?もしそうなら、私は何が間違っていますか? ありがとう。

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

c# - ASP.NET モデル バインダーと基本型

私のモデルはインターフェースから継承しています:

モデル:

プロジェクトサーチ:

そしてメインビューの強い型付けされたパーシャルビュー:

フォームを送信すると、Searchプロパティが適切にバインドされません。すべてが空です。アクションは型の引数を取りますProjectSearch

Search想定どおりにバインドされないのはなぜですか?

編集

アクション

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

asp.net-mvc-2 - モデルバインディング失敗VS2010 asp.net mvc2

contactAddModel.Search は常に null として取得されます - 何かアイデアはありますか?

宣言を見る

ビューモデル

コンテンツを見る

コントローラ

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

asp.net-mvc - ASP.NET MVCは、単体テストから呼び出すときにModelErrorを追加しません

モデルアイテムを持っています

とコントローラーアクション

EntryInputModel単体テストでを作成し、Descriptionプロパティをに設定nullしてアクションメソッドに渡すと、ModelState.IsValid == trueデバッグして検証したにもかかわらず、が取得されnewEntry.Description == nullます。

なぜこれが機能しないのですか?

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

asp.net-mvc - カスタムモデルのバインダーが起動しない

これは私のカスタム モデル バインダーです。BindModel にブレークポイントを設定していますが、このコントローラー アクションでは起動しません。

...

私の登録:

// これら 2 行の両方を試しました

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

asp.net-mvc - MVC 2、IoC、ModelView、およびバインディング

コントローラーを IoC 実装に登録できる場合、IoC コンテナーから ModelView を作成できないのはなぜですか?

現在、次のコントローラーの IoC インジェクションに Autofac 1.4 を使用しています。

ビューモデルのオブジェクト ファクトリとしてコンテナーを使用するように MVC に指示する方法がわかりません。

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

c# - 強く型付けされたHTMLヘルパーを使用したPOSTでのASPMVC2モデルバインディングの問題

そのため、MVC1.0からMVC2.0RTMへの移行を検討しています。私が従い始めたい規則の1つは、テキストボックスなどのコントロールを生成するために強く型付けされたHTMLヘルパーを使用することです。

ただし、簡単なジャンプではないようです。次のような行を置き換えて、最初のフォームを移行してみました。

...このような行の場合:

以前は、これは次のメソッドシグネチャを使用して、POSTの適切なビューモデルにマップされていました。

代わりに、現在、空のオブジェクトが返されます。切断は、ビューモデルを、ページメタデータやその他の楽しいものを一緒に含むより大きな集約オブジェクトに渡すという事実にあると思います(したがって、x.Data.FirstNameの代わりにx.FirstName)

だから私の質問は、MVCフレームワークが元の行のようにフォームコレクションをビューモデルに適切にキャストできるようにしながら、強く型付けされたヘルパーを使用するための最良の方法は何ですか?ビューに渡す集計タイプを変更せずにそれを行う方法はありますか?

ありがとう!

更新:したがって、bind属性はうまく機能しましたが、基本的にすべての投稿されたビューモデルにそれを適用する方法が好きではありませんでした。継承階層を変更して、すべてのビューモデルが、という名前の集約プロパティではなく、ページコンテンツやその他のメタデータを含む基本クラスから継承するようにしましたData