問題タブ [modelbinder]
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-3 - MVC: 1 つのモデルで 1 つのカスタム ModelBinder と既定のバインダーを持つことは可能ですか?
カスタムバインダーを使用してコンストラクターを処理し(必要)、デフォルトのモデルバインダーに残りのプロパティを通常どおり入力させたいと思います。
編集:もちろん、カスタムのものは最初に実行されます。
c# - MVC 3.0 ModelBinder bindingContext.ValueProvider.GetValue(key) は、コレクションでバインドするときに null を返します
私はカスタム ModelBinders を使用するのは初めてで、見回してきましたが、この特定のケースに関連する投稿が見つかりませんでした。
次のようなエンティティがあります。
ビューでは、次のようにバインドします。
クラス DynamicDataItems に特定の方法で取得したい特別な情報があるため、独自のモデル バインダーを作成しました。
bindingContext.ModelName には「DynamicDataItem[0]」が含まれています。
bindingContext.ValueProvider.ContainsPrefix(key) を実行すると true が返されますが、GetValue(key) を実行すると null が返されます。ValueProvider の内容を調べると、"DynamicDataItem[0]" で始まるキーを持つ項目がいくつかあることがわかります。現在バインドされているアイテム (「DynamicDataItem[0]」) のすべてのフィールドから情報を取得するにはどうすればよいですか? それらをすべて1つずつ取得する必要がありますか?このような:
これであなたが私に与えることができるガイダンスに大いに感謝します。
asp.net-mvc-3 - オブジェクトをモデル バインダーに渡す場合、一部の値が更新されないようにするにはどうすればよいですか
次のプロパティを持つ Visit という名前のオブジェクトがあります:-
注 DoctorID VisitTypeID CreatedBy Date VisitID PatientID StatusID タイムスタンプ
編集ビューでは、ユーザーは次の 2 つのプロパティのみを編集できます。
編集ビューにすべてのプロパティを含める必要があります。これは、Visit オブジェクトを編集後のアクション メソッドに渡すためです。次のようになります。
したがって、これらの理由から上記のアプローチについて心配しています:- 1. 攻撃者が hiddenfields の値を変更する可能性があります。2. Visit モデル クラスで [Bind(Include = "....")] を定義できません。
したがって、このアプローチを引き続き使用する必要があるかどうか、または従うべきより良いアプローチがあるかどうかを判断できません
asp.net-mvc - .NETMVCの目立たない検証とカスタムモデルバインダー
編集目的でjqueryダイアログを表示する単純なMVCWebサイトがあります。このダイアログには、ユーザーが入力できるスキルのコンマ区切りリストを受け入れるテキストエリアがあります。提出すると、私のモデルバインダーはこれをリストに変換します。これが私のモデルバインダーのコードです
そして、これは私の部分的なビューのコードです
[必須]などの私の単純な検証はすべて、クライアント側で機能します。モデルバインダーの検証も機能しますが、エラーメッセージは表示されません。エラーを登録するためのJavaScriptに何かが欠けていると思いますが、それが何であるかわかりません。どんな助けでもいただければ幸いです。ありがとう。
これが問題のスクリーンショットです
asp.net-mvc - モデル バインダーは json を IEnumerable に変換しません
jquery ajax postを介してjsonデータをコントローラーアクションに送信しています。私のアクションの IEnumerable は常に null です。
json が間違っていますか、それともモデル バインダーが json を IEnumerable に変換しないのはなぜですか?
asp.net-mvc-3 - bindmodel vs createmodel asp mvc 3
Aspで最初のアプリケーションを開発しています。Asp.NETMVC3環境を使用しています。単一のパラメーターを持つコントローラーアクションがあります。このパラメーターのタイプは複雑なオブジェクトです。
ModelBinderクラスを使用しています。しかし、BindModel関数とCreateModel関数のどちらをオーバーライドする必要があるのかわかりません。
これらの2つの関数の違いと、それらがルーターによって正確に使用される場合の違いは何ですか。
ありがとう !
javascript - backbone.js コレクションのアクティブ フィルター
バックボーン コレクションに少し問題があります。6 つのモデルを表示したいだけで、常に最新の 6 つです。 CollectionBinder (Backbone.ModelBinder) を使用してコレクションをレンダリングおよび表示し、RailsFayeSubscriber を使用してそれらをサーバーと同期します。
問題は、コレクション 6 モデルを常に大きく保つ方法がわからないことです。this.on("add") を追加しようとしましたが、そこに .first(6) を使用して必要な 6 つのモデルを保持しましたが、問題は、CollectionBinder または RailsFayeSubscriber にも add-trigger があり、私をスローすると思うことですコレクション内の欠落モデルに関するエラー。
最良の方法は、常にモデルをソートするコンパレーターのようなものを用意することですが、この場合、常に 6 つのモデルを大きく保つある種のアクティブ フィルターを使用します。
何か案は?
asp.net-mvc - カスタム IModelBinder の NullReferenceException
.NET 4.5 で MVC4 を使用して独自のカスタム ModelBinder を実装しようとしていますが、奇妙なエラーが発生します。私のコードはおおよそ見えます。このような
TableViewModelModel : IModelBinder
最初の行ですでに NullReferenceException がスローされていますが、実際には null のプロパティはありません (これらはすべて Intellisense デバッグに表示されます)。必死になって、いくつかのプロパティを削除して、例外がスローされた場所をよりよく確認することにしました。その原因は Params プロパティであることがわかりました。本当に奇妙なのは、クエリ文字列のすべてのキーがデバッグ ウィンドウにリストされているにもかかわらず、例外がスローされることです。私は本当にこの人に助けが必要です!
ありがとう。
ajax - MVC3 NuGet PagedList フォーム データ
選択可能なテンプレートのページ リストと選択可能なバージョンのページ リストの 2 つのプロパティを持つモデルを作成しました。
ビューでは複数のバージョンとテンプレートを選択できるため、フォームを投稿すると、選択したテンプレートとバージョンの可能な組み合わせごとに新しいインスタンスが作成されます。
私が抱えている問題は、ナゲットからのページリストを扱うことです。通常のactionlinkで投稿することはできないと読んだので、pagedlist Nextが設定されているhttpmethodのPOSTを持つajax.actionlinkであるAjax.Beginformを試みました。
残念ながら、このモデルに指定されたモデルバインダーに到達すると、コントローラーコンテキストにはフォームのキーに何もありません。
チェックボックスは、ajax beginform セクション内で次のようになります。
モデルバインダーでこの逆シリアル化されたデータを見つけるのに間違った場所を探しているのでしょうか、それとも html で何か間違ったことをしていますか?
本当にありがとう!
asp.net-mvc-4 - MVCモデルバインダーリストIDと名前の問題
こんにちは私はajax-callsを使用してパーシャルビューを取得するときに正しいIDと名前を取得するのに問題があります。
「Blocks_0__Items_0__Id」のようなIDが必要です。これらはforループを使用してレンダリングされるため、メインページは次のとおりです。
次に、BlockViewは、editorforを使用してアイテムに対して同じリストレンダリングを実行します。forループは、IDと名前を正しくします。
ただし、アイテムテンプレートを部分ビューとしてレンダリングしたい場合は、ブロックとアイテムの部分がないのが自然です。
この問題を解決するために、常に単一のアイテムを含むブロックをレンダリングする空のメインページを呼び出します。しかし、これは、ajaxを介して挿入し、modelbinderで読み取りたいものについては、2つの追加の部分ビューを作成する必要があることを意味します!!
解決策2ViewData.TemplateInfo.HtmlFieldPrefixメソッドを使用して設定することだと思いました。しかし、私はリストを含むリストを持っているので、それは不可能です。部分ビューの1つを削除して、次を使用できます:ViewData.TemplateInfo.HtmlFieldPrefix = "Block"
Html.BeginCollectionItem( "nameofitem")というmvc1および2Htmlヘルパーを見ましたが、それはもう存在しません。
良いアイデアはありますか?