問題タブ [modelstate]
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 - 非同期経由でValidationSummaryを更新する-ASP.NETMVC
私のコントローラーでは、modelstateが無効な場合
ValidationMessageを更新したいのですが、ビューを再投稿する必要はありません。検証メッセージを含む望ましい概念のようです。を使用するDataAnnotationsも使用しています<% Html.EnableClientValidation(); %>
が、それでもコントローラーに投稿されるため、このチェックを実行する必要があります。提案された実装はありますか?
c# - ModelState を更新してエラーを削除する
ModelState の更新
こんにちは、ASP.NET MVC コントローラーの ModelState について質問があります。
ユーザーがビューから特定のオプションを選択すると、「認証」の開始日と終了日が、入力された他の日付に基づいて設定されます。
これに関する問題は、認定日が null として返され、CertificationMetaData クラスがフィールドを [Required] と指定しているため、アクションが読み込まれるとすぐに ModelState が無効になることです。
ModelSate エラーを手動で削除すると、これが機能しますが、これを行うためのより良い方法があるかどうか疑問に思っていましたか? ModelState を更新する方法はありますか? フィールドを必須ではなくする必要がありますか? または、javascript を使用してビューから日付値を追加する必要がありますか?
また、ご覧のとおり、認証タイプの ID 値をハードコーディングしました。値をルックアップ テーブルの値と比較する最良の方法は何ですか? 列挙型は最善の方法ですか?
ありがとう
c# - POST後のHTML.CheckBoxの永続状態-ModelStateを更新しますか?
私は多くのアイテムで構成されたフォームを持っています(Amazonの注文で注文アイテムを考えてください)。各行にはチェックボックスが関連付けられているため、ユーザーは多くのアイテムを選択して[削除]をクリックできます。
フォームはこのように少し構成されています。
モデルバインダーはその魔法をうまく実行し、リストは正しく入力されます。ただし、アクションでリクエストを処理し(たとえば、適切なアイテムを削除して)、より少ないアイテムを含む新しいビューを返した後、フォームの状態は「半」持続します。編集モデルではすべてのboolがfalseに設定されていますが、一部のチェックボックスはオンのままです。
を返す場合、この問題は発生しませんがRedirectToActionResult
、それを解決策として使用することは、少し厄介な回避策のようです。
ModelState、または同様の何かをフラッシュ/更新する必要があると思いますが、その方法を見つけるために検索する用語がわかりません。
asp.net-mvc - Asp.net MVC ModelState.Clear
Asp.net MVC での ModelState の役割の簡潔な定義 (またはそのリンク) を教えてください。特に、どのような状況で を呼び出す必要があるか、または望ましいかを知る必要がありますModelState.Clear()
。
少しオープンに終わりました...申し訳ありませんが、私が実際に何をしているのか教えていただけると助かります:
「ページ」と呼ばれるコントローラーに編集アクションがあります。ページの詳細を変更するフォームを最初に表示すると、すべてが正常に読み込まれます (「MyCmsPage」オブジェクトにバインドされます)。次に、MyCmsPage オブジェクトのいずれかのフィールド ( MyCmsPage.SeoTitle
) の値を生成するボタンをクリックします。それはうまく生成され、オブジェクトを更新し、新しく変更されたページオブジェクトでアクション結果を返し、関連するテキストボックス (を使用してレンダリング<%= Html.TextBox("seoTitle", page.SeoTitle)%>
) が更新されることを期待します...しかし、残念ながら、ロードされた古いモデルからの値が表示されます。
を使用して回避しましたModelState.Clear()
が、なぜ/どのように機能したかを知る必要があるため、盲目的にやっているだけではありません。
ページコントローラー:
Aspx:
c# - ModelState.IsValid == false、なぜですか?
ModelStateを無効にするエラーのリストはどこにありますか?ModelStateオブジェクトにエラープロパティが表示されませんでした。
asp.net-mvc - ASP.NET MVC 2 でのモデル バインディングのテスト
初め; MVC の内部をテストする必要がないことはわかっていますが、システムに流れ込むデータに関する一連のテストが本当に必要です。
HTTP コンテキストのすべてをモックすることなく、objectA (フォーム コレクション、辞書、コレクション、オブジェクトなど) が objectAModel に準拠しているかどうかをテストするにはどうすればよいでしょうか?
コントローラーをインスタンス化したり、アクションを呼び出したりする必要はありません。新しいオブジェクトがモデル状態を無効にするかどうかをテストしたいだけです。
簡単に書けばいいのに
asp.net-mvc - ASP.NET MVC: DataAnnotations - フィールドが数値でなければならないことを示すエラー メッセージを表示する
ユーザーが int に入るフィールドに何らかのテキストを入力すると、DataAnnotations コードに到達しないという点で、DataAnnotations の動作に穴のようなものがあるようです。モデル バインディング エラーが発生し、ユーザーに「値 'a' は XXXX フィールドでは無効です」というエラーが表示されます。
とにかく、この状況を自動的に処理するのはとてもいいことですが、実際には問題を示すエラーメッセージを表示したい. 「値 'a' は数値ではありません。XXXX フィールドに数値を入力してください」.
Asp.net MVC 2 でデフォルトの ModelState エラー メッセージを置き換える方法について説明した解決策を試しました。およびASP.NET MVC - 値の型のカスタム検証メッセージ ですが、それらを機能させることができません。
ここ ( http://msdn.microsoft.com/en-us/library/system.web.mvc.defaultmodelbinder.resourceclasskey.aspx ) に「プロパティがが無効なクラス キー (存在しないリソース ファイルなど) に設定されている場合、MVC は例外をスローします。」行を DefaultModelBinder.ResourceClassKey = "asdfasdhfk" に変更しても例外はありません。
誰にもアイデアはありますか?
編集:ここにいくつかのコードがあります。Messages.resx ファイルのメッセージが使用されていないことを除いて、すべてが機能しています。Messages.resx のコードは自動生成されるため、含めません。
したがって、「a」を ProcessOrder に入力すると、Messages.resx に PropertyValueInvalid (および InvalidPropertyValue を適切に測定) に入力したものではなく、一般的なメッセージが表示されます。
Application_Start メソッド
エンティティ クラス
コントローラーのアクション:
asp.net-mvc - IOC on IValidationDictionary with Castle Windsor
Castle Windsor は初めてで、最新バージョンを使用しています。正常に動作しているリポジトリのエントリを作成しましたが、コントローラーに渡す最後の依存関係が 1 つあります。
IValidationDictionary を継承する ModelStateWrapper を作成しました。ModelStateWrapper はコンストラクターで ModelStateDictionary を受け取るため、私のコードでは例として次を渡すことができます。
私のテストでは、Moq を使用してこれを行うことができます。
Castle に ModelStateWrapper を使用して ModelState を注入させることができないようです。Castle が依存関係を検索し、依存関係が残っているというエラーをスローするため、「無視」して手動で注入しようとすることはできないようです。
IValidationDictionary に基づいて ModelStateWrapper を使用し、コンストラクターのパラメーターとして ModelState を含めるように Castle Windsor を構成するにはどうすればよいですか?
ロイド