問題タブ [custom-model-binder]
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 - KendoUI グリッドが saveChanges イベントを発生させない ( System.MissingMethodException: Cannot create an instance of an interface.)
KendoUI グリッドは SaveChanges イベントを発生しません。プロジェクトを実行して SaveChanges ボタンをクリックしても、Visual Studio 2013 の環境とブラウザー (FF、IE、Chrome) に問題はありませんでしたが、SaveChanges イベントは発生しません。さらに調査するために、Chrome のデバッガーを使用しましたが、問題が発生しました。問題、エラー ログ、およびコードの写真を参照してください。(私はJQuery v1.10を使用しました)解決するのを手伝ってください。
編集:
エラーが関連していることを理解しました。[Bind(Prefix = "models")]
削除すると、 Editing_Update
アクションが発生しましたが、articles
オブジェクトはnullでした。どうすれば修正できますか?
私のコントローラーの一部:
上記のコードによると、SaveChanges ボタンをクリックすると、Editing_Update が発生するはずですが、発生しませんでした!!
私のグリッド:
私のビューモデル:
c# - ASP.NET: Modelbinder のみの委任
カスタムモデルバインダーで問題に直面しています。
EditorTemplates によって表示される 2 つのモデル (基本クラスから継承) があります。
ベースクラス:
モデルクラス 1:
モデルクラス 2:
それをバインドするために、カスタム モデルバインダーを実装しました。
全体としてうまく機能しますが、モデル (QuestionId および Rating/Freetext) のプロパティの値が設定されていませんか? 誰でも理由を教えてもらえますか? 私は何を間違っていますか?
私も電話してみた
しかし、結果は同じです。オブジェクトは正しくインスタンス化されていますが、プロパティが設定されていません。
アップデート:
この投稿MVC 3 Model Binding a Sub Type (Abstract Class or Interface)のように、DefaultBinder の CreateModel-Methode だけをオーバーライドしようとしました。
モデルはまだ正しくインスタンス化されています。問題は、基本クラスのプロパティのみが設定されていることです。
asp.net-mvc - カスタム モデル バインダーでのモデル値の更新
モデルにいくつかのプロパティを追加するカスタム モデル バインダーがあります。
プロパティを追加するとすべて正常に動作しますが、既存のプロパティを更新するには、それらが無視されるようです。
私のコードは次のとおりです。
コントローラ
モデルバインダー
簡潔にするために変更されたコードのコメントに注意してください。要約すると、フォームが送信されたときに最初に設定されていないものはすべて、問題なく更新できます。最初に設定されたものはすべて更新されません。
ありがとう
asp.net-mvc-3 - 別のアセンブリからカスタム モデル バインダーを使用し、同じアセンブリからオブジェクトをインスタンス化する
抽象クラスから派生するさまざまな具象型をインスタンス化するカスタム MVC モデル バインダーを含むクラス ライブラリがあります。モデル バインダーは、この投稿で説明されているものとほぼ同じです。
テスト用の MVC Web アプリケーションも含まれている同じ Visual Studio ソリューション内から使用すると、問題なく動作します。
私の問題は、アセンブリから nuget パッケージを作成し、それをまったく別の MVC アプリケーションに含めると、Global.asax.cs で正しく構成したにもかかわらず、モデル バインダーが機能しなくなることです。
CreateModel()
髪を引っ張った後、別の MVC アプリでモデル バインダーを直接再作成しました。そうしているうちに、バインダーでオーバーライドされたメソッドが保護されていることに気付きました。実行されるようになり、保護されたキーワードが関係していると思われますが、その理由を正確に説明してください。
「ローカル」モデルバインダーを使用しても、さらに問題があります。実行して具体的なオブジェクトをインスタンス化しようとすると、例外が発生Could not load type XXXX from assembly { separate MVC project assembly name}
するため、モデル バインダーが独自のアセンブリの外部から型を読み込めないようです。
なぜこれが起こるのか、そしてそれを回避するために私ができることについて、誰かが私にもっと情報を与えることができますか? モデル バインダーとモデルは、MVC アセンブリではなくクラス ライブラリに存在する必要があることに注意してください。
c# - Web API の基本クラスのカスタム モデル バインダー
次のモデルが与えられた場合
の値はRequestBase
ヘッダー経由で送信されるため、カスタム モデル バインダーを実装してモデルにバインドしようとしています。
これは私がこれまでに得たものです
bindingContext.Model
がnullであるため、現時点では機能していません