問題タブ [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.

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

asp.net - 非同期経由でValidationSummaryを更新する-ASP.NETMVC

私のコントローラーでは、modelstateが無効な場合

ValidationMessageを更新したいのですが、ビューを再投稿する必要はありません。検証メッセージを含む望ましい概念のようです。を使用するDataAnnotationsも使用しています<% Html.EnableClientValidation(); %>が、それでもコントローラーに投稿されるため、このチェックを実行する必要があります。提案された実装はありますか?

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

c# - ModelState を更新してエラーを削除する

ModelState の更新

こんにちは、ASP.NET MVC コントローラーの ModelState について質問があります。

ユーザーがビューから特定のオプションを選択すると、「認証」の開始日と終了日が、入力された他の日付に基づいて設定されます。

これに関する問題は、認定日が null として返され、CertificationMetaData クラスがフィールドを [Required] と指定しているため、アクションが読み込まれるとすぐに ModelState が無効になることです。

ModelSate エラーを手動で削除すると、これが機能しますが、これを行うためのより良い方法があるかどうか疑問に思っていましたか? ModelState を更新する方法はありますか? フィールドを必須ではなくする必要がありますか? または、javascript を使用してビューから日付値を追加する必要がありますか?

また、ご覧のとおり、認証タイプの ID 値をハードコーディングしました。値をルックアップ テーブルの値と比較する最良の方法は何ですか? 列挙型は最善の方法ですか?

ありがとう

0 投票する
3 に答える
953 参照

c# - POST後のHTML.CheckBoxの永続状態-ModelStateを更新しますか?

私は多くのアイテムで構成されたフォームを持っています(Amazonの注文で注文アイテムを考えてください)。各行にはチェックボックスが関連付けられているため、ユーザーは多くのアイテムを選択して[削除]をクリックできます。

フォームはこのように少し構成されています。

モデルバインダーはその魔法をうまく実行し、リストは正しく入力されます。ただし、アクションでリクエストを処理し(たとえば、適切なアイテムを削除して)、より少ないアイテムを含む新しいビューを返した後、フォームの状態は「半」持続します。編集モデルではすべてのboolがfalseに設定されていますが、一部のチェックボックスはオンのままです。

を返す場合、この問題は発生しませんがRedirectToActionResult、それを解決策として使用することは、少し厄介な回避策のようです。

ModelState、または同様の何かをフラッシュ/更新する必要があると思いますが、その方法を見つけるために検索する用語がわかりません。

0 投票する
10 に答える
118296 参照

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:

0 投票する
9 に答える
157961 参照

c# - ModelState.IsValid == false、なぜですか?

ModelStateを無効にするエラーのリストはどこにありますか?ModelStateオブジェクトにエラープロパティが表示されませんでした。

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

asp.net-mvc - ASP.NET MVC 2 でのモデル バインディングのテスト

初め; MVC の内部をテストする必要がないことはわかっていますが、システムに流れ込むデータに関する一連のテストが本当に必要です。

HTTP コンテキストのすべてをモックすることなく、objectA (フォーム コレクション、辞書、コレクション、オブジェクトなど) が objectAModel に準拠しているかどうかをテストするにはどうすればよいでしょうか?

コントローラーをインスタンス化したり、アクションを呼び出したりする必要はありません。新しいオブジェクトがモデル状態を無効にするかどうかをテストしたいだけです。

簡単に書けばいいのに

0 投票する
3 に答える
8334 参照

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 メソッド

エンティティ クラス

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

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

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 を構成するにはどうすればよいですか?

ロイド