問題タブ [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-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()
ヘルパーを使用する必要がありますか?もちろん、ポストバックでこれらの値をサーバーに戻す必要があります。
次のいずれかのようなコントローラーアクションが必要です。
それが物事を簡単にするなら、私は次のような別のビューモデルタイプを作ることができます:
また、コントローラーアクションの最初のバージョンを次のように変更します。
javascript - JavaScript データ オブジェクトをポストするときの List<> へのモデル バインド
次のJavaScriptデータオブジェクトを投稿しようとしています:
ここで、「データ」は次の構造を取ります
これにより、サイトとパネルの両方が正しくインスタンス化され、データにバインドされますが、List オブジェクトは null です。
ここで、「データ」オブジェクトの ConfiguredFactsheetId プロパティが id 値の単なる配列であることに気付きました。各値が ConfiguredFactsheet オブジェクトの configuredFactsheetId プロパティに対応することを指定する必要がありますか? もしそうなら、私のデータオブジェクトは似たような形をとるでしょう
しかし、オブジェクトに新しい ConfiguredFactsheetId を追加するたびに、以前のものを上書きするだけなので、これは明らかに機能しません。
次の形式のクエリ文字列を作成すれば、これを実行できることがわかります
しかし、すべてを単一のデータオブジェクトに含めたい
助言がありますか?何か (おそらくすべて!) をもっと明確に説明する必要がありますか?
ありがとう
デイブ
c# - ネストされた子モデルと ASP.NET MVC の PartialViews を使用したモデル バインディング
次のタイプとクラスがあります。
Page
ビューでインスタンスを編集したいEdit.aspx
。EditableContent
は他のモデルにもアタッチされているため、厳密に型指定され、インスタンスを取得してレンダリングするPartialView
呼び出しがあります。ContentEditor.ascx
EditableContent
レンダリング部分はすべて正常に動作しますが、投稿すると、内部のすべてがContentEditor
バインドされていません。つまりPage.Content
、null
.
PartialView では、強く型付けされた Html ヘルパーを使用してこれを行います。
しかし、 によってレンダリングされるフォーム上の入力要素は、その属性のプレフィックスをContentEditor.ascx
取得しないため、値は にバインドされません。Content
id
Page
これを克服するために、ゆるく型付けされたヘルパーを使用してみました:
そして、私List<T>
が何かのプロパティを扱っているとき、それは非常に醜くなります。次に、コレクション インデックスを手動でレンダリングする必要があります。
Page と EditableContent の両方をパラメーターとしてコントローラー アクションに配置する必要がありますか?:
私は何が欠けていますか?
asp.net-mvc - Ajax.BeginForm を使用して HttpPostedFileBase をバインドする
HttpPostedFileBase のデフォルトのバインダーを使用して、モデルとファイルのアップロードをバインドするフォームがあります。
これは、Html.BeginForm() を使用する場合にうまく機能します。ただし、AJAX を使用して同じアクションを実行したかったので、これを Ajax.BeginForm() に置き換え、それに応じてパラメーターを変更しました。
モデルは引き続き正しくバインドされますが、ファイルのアップロードを HttpPostedFileBase にバインドできません。
これにより、モデルとファイルのアップロードがバインドされます。
これはモデルのみをバインドします:
コントローラーのアクション:
これは可能である必要がありますか?もしそうなら、私は何が間違っていますか? ありがとう。
c# - ASP.NET モデル バインダーと基本型
私のモデルはインターフェースから継承しています:
モデル:
プロジェクトサーチ:
そしてメインビューの強い型付けされたパーシャルビュー:
フォームを送信すると、Search
プロパティが適切にバインドされません。すべてが空です。アクションは型の引数を取りますProjectSearch
。
Search
想定どおりにバインドされないのはなぜですか?
編集
アクション
asp.net-mvc-2 - モデルバインディング失敗VS2010 asp.net mvc2
contactAddModel.Search は常に null として取得されます - 何かアイデアはありますか?
宣言を見る
ビューモデル
コンテンツを見る
コントローラ
asp.net-mvc - ASP.NET MVCは、単体テストから呼び出すときにModelErrorを追加しません
モデルアイテムを持っています
とコントローラーアクション
EntryInputModel
単体テストでを作成し、Description
プロパティをに設定null
してアクションメソッドに渡すと、ModelState.IsValid == true
デバッグして検証したにもかかわらず、が取得されnewEntry.Description == null
ます。
なぜこれが機能しないのですか?
asp.net-mvc - カスタムモデルのバインダーが起動しない
これは私のカスタム モデル バインダーです。BindModel にブレークポイントを設定していますが、このコントローラー アクションでは起動しません。
...
私の登録:
// これら 2 行の両方を試しました
asp.net-mvc - MVC 2、IoC、ModelView、およびバインディング
コントローラーを IoC 実装に登録できる場合、IoC コンテナーから ModelView を作成できないのはなぜですか?
現在、次のコントローラーの IoC インジェクションに Autofac 1.4 を使用しています。
ビューモデルのオブジェクト ファクトリとしてコンテナーを使用するように MVC に指示する方法がわかりません。
c# - 強く型付けされたHTMLヘルパーを使用したPOSTでのASPMVC2モデルバインディングの問題
そのため、MVC1.0からMVC2.0RTMへの移行を検討しています。私が従い始めたい規則の1つは、テキストボックスなどのコントロールを生成するために強く型付けされたHTMLヘルパーを使用することです。
ただし、簡単なジャンプではないようです。次のような行を置き換えて、最初のフォームを移行してみました。
...このような行の場合:
以前は、これは次のメソッドシグネチャを使用して、POSTの適切なビューモデルにマップされていました。
代わりに、現在、空のオブジェクトが返されます。切断は、ビューモデルを、ページメタデータやその他の楽しいものを一緒に含むより大きな集約オブジェクトに渡すという事実にあると思います(したがって、x.Data.FirstName
の代わりにx.FirstName)
。
だから私の質問は、MVCフレームワークが元の行のようにフォームコレクションをビューモデルに適切にキャストできるようにしながら、強く型付けされたヘルパーを使用するための最良の方法は何ですか?ビューに渡す集計タイプを変更せずにそれを行う方法はありますか?
ありがとう!
更新:したがって、bind属性はうまく機能しましたが、基本的にすべての投稿されたビューモデルにそれを適用する方法が好きではありませんでした。継承階層を変更して、すべてのビューモデルが、という名前の集約プロパティではなく、ページコンテンツやその他のメタデータを含む基本クラスから継承するようにしましたData
。