問題タブ [validationsummary]
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 - JSONの並べ替えを無効にする
ajax呼び出しで検証するJSONデータを作成しています。
これが私の構築されたJSONです:
これが得られたものです:
お気づきのように、私のキーはアルファベット順に並べ替えられていますが、これは望ましくありません。
これにより、エラーが2番目の順序でページに返されますが、1番目の順序でエラーが必要です。エラーの概要(Html.ValidationSummary)がページのエラー(最初のエラー=エラーの最初のフィールド)に従うようにしたい。
元の注文を保持する方法はありますか?
またはどういうわけかこれをバイパスしますか?
編集
ajax呼び出しリターン(エラー)
返品をそのまま再注文することはできません。
asp.net - ASP.NETカスタムバリデーターとvalidationSummaryはエラーメッセージとともに表示されませんが、グリッドビューで検証を実行します
グリッドビューの各行にカスタムバリデーターがあり、グリッドビューが配置されているパネルの下部に概要があるという問題があります。
カスタムバリデーターは想定どおりに起動し、args.IsValid = falseを設定して適切なエラーメッセージを割り当てましたが、画面にカスタムバリデーターのテキストも、概要にerrorMessageも表示されません。実際、要約はまったく表示されません。
他の場所でほぼ同じセットアップを使用していて、正常に機能したため、これを確認しましたが、なぜこれが発生するのかわかりません。
マークアップ:
..。
サーバー検証コード:
..。
c# - TryUpdateModel を使用してバインドされている場合、MVC ValidationSummary はモデル レベルの検証エラーを無視します。
これは、既にここに投稿されている問題と非常によく似た問題です: ASP.NET MVC: TryUpdateModel に設定された検証メッセージが ValidationSummary を表示しない
その古いトピックが以前のバージョンの MVC に関連していたかどうかはわかりませんが、MVC3 では、同様の線に沿って奇妙な動作が発生しています。
Tradeというモデルクラスがあります。これは IValidatableObject を継承しているため、Validate メソッドを実装しています。この中に、モデル全体の検証があります (プロパティの検証を強制するデータ注釈とは対照的です)。検証は次のとおりです。
取引の表示に役立つビューモデルがあります。これには、TradeModel プロパティを介した取引モデルへの参照が含まれています。したがって、基本的にビュー モデルは Trade モデルであり、カウンターパーティなどのドロップダウン リストの母集団に関する追加情報が追加されます。
CSHTML クラスには ValidationSummary が含まれており、引数として「true」が指定されています。これは、モデル エラーのみを表示することを意味します。
次のように、新しい Trade を作成するための HttpPost コントローラー メソッドを実装すると...
...StartDate > EndDate で取引を開始すると、TryUpdateModel が false を返し、ユーザーが取引に戻るように指示されます。これは論理的に思えます。残念ながら、ValidationSummary はエラー メッセージを表示しません。
Create メソッドにブレークポイントを置いて ModelState を調べると、辞書にエラー メッセージがあることがわかります。これは、プロパティに対するものではなく、「TradeModel」のキーに対するものです。繰り返しますが、これは論理的に思えます。
これがなぜなのかについての 1 つの理論は、ValidationSummary は、String.Empty ではないキーに対する検証エラーはすべてプロパティ検証エラーであると想定しているということです。モデルへの参照を含むビュー モデルがあるため、検証エラーを無視しています。したがって、キーは「TradeModel」になります。
この理論を水から吹き飛ばすのはこれです:コントローラーのCreate関数を次のように書き直すと...
...したがって、バインディングを「自動的に」実行する MVC に依存し、同じテスト シナリオを再実行すると、意図したエラー メッセージがユーザーに表示されます。
ブレークポイントを追加して ModelState を見ると、以前と同じキーに対して同じエラー メッセージが表示されますが、今回は ValidationSummary がそれらをピックアップします!
次のように検証を修正すると、いずれかの方法で記述されたコントローラーの Create 関数で動作します。
明らかに、モデル レベルの検証エラーの問題にすぎません。
これについて何か助けていただければ幸いです。ビュー モデルのインスタンスを手動で作成し、TryUpdateModel を使用してバインディングを呼び出す必要があるのには理由があります (ここでは説明しません)。
前もって感謝します!
アップデート
プロパティ エラーを除外するように指示されたときに、ValidationSummary が String.Empty の ModelState にキーを持つエラーのみを表示するという理論は、実際には正しいようです。ソース コードを調べたところ、実際には ViewData.TemplateInfo.HtmlFieldPrefix を使用して、モデル レベルで検証エラーを見つけています。デフォルトでは、これは String.Empty です。
したがって、この値を「TradeModel」に変更することは論理的に思えますが、すべての HTML ID または名前にプレフィックスが付けられるため、バインディングは失敗します。
ビュー モデルにビジネス モデルへの参照が含まれている場合、IValidatableObject によって ModelState に追加されたエラーには、ビュー モデルのビジネス モデル プロパティ名 (この場合は「TradeModel」) に等しいプレフィックスを含むキーが追加され、次のようになります。 「TradeModel.CounterpartyId」などのキー。モデル レベルのエラーは、ビュー モデルのビジネス モデル プロパティ名 (「TradeModel」) に等しいキーで追加されます。
したがって、ビュー モデルがこのように構築されている場合、ビジネスはモデル レベルの検証エラーを追加できないようです。
私が困惑しているのは、Trade ビュー モデル オブジェクトを引数として受け取るようにコントローラーの Create 関数が記述されているときに、これが「実際の」プロジェクトで実際に機能する理由です。昨日はこれを見逃していたに違いありませんが、今日見ると、MVC がバインドして検証がトリガーされると、辞書の末尾に String.Empty の値を持つ余分なキーが追加されているように見えます。これには、TradeModel のキーで追加されたエラーの複製が含まれています。ご想像のとおり、ValidationSummary がそれらを取得します。
では、なぜ MVC はライブ プロジェクトでこれを行うのに、単純なテスト アプリではそうしないのでしょうか?
ビュー モデルを引数として取るようにコントローラー関数が記述されている場合、検証が 2 回トリガーされるのを見てきました。たぶん、これは毎回微妙に違うことをしているのですか?
更新...もう一度
実際のプロジェクトで機能する理由は、モデル状態で見つかったすべてのエラーを String.Empty のキーを持つ新しいエントリにコピーするコードがベース コントローラー (他のすべてのコントローラーから継承) に埋め込まれているためです。このコードは、2 つのシナリオのうちの 1 つのみで呼び出されていました。したがって、実際のアプリとテスト アプリの間に実際の違いはありません。
何が起こっているのか、なぜ ValidationSummary がこのように動作しているのかを理解しました。
asp.net-mvc - ASP.NET Mvc3 Jqueryダイアログ検証の概要エラーが表示されますか?
ダイアログコンテンツ
コントローラ
テキストボックスのエラーボタンを表示したい。しかし、それは次のように上部に表示されます。
テキストボックスの独自のボタンである各エラーを表示するにはどうすればよいですか?
これ欲しい:
ありがとう。
asp.net-mvc-3 - ビュー内のプロパティ エラーを除外した MVC3 の ModelState のテスト
Google と Stack Overflow で検索しましたが、これに対する答えが見つかりません。
私は私の見解で次のことを持っています
モデル エラーのみに関心がありますが、プロパティ エラーが見つかった場合、テストは true を返します。モデルのエラーだけをテストするにはどうすればよいですか?
<br />
ここで明確にする必要があるかもしれませんが、プロパティ エラーはあるがモデル エラーがない場合に書き出されるのを停止するテストを実行したいと考えています。
asp.net-mvc - JavaScript によって動的に非表示になっているフォーム フィールドで ValidationSummary エラーが発生したため、フォームを投稿できません。
ASP.NET MVC 3 アプリケーション。
JavaScript を使用して表示および非表示になるいくつかの動的フィールドを持つフォームを投稿しようとしています。これらの動的フィールドのいくつかでサーバー側の検証を行うために IValidatableObject を使用しています。
これらのフィールドが表示されているときにフォームを投稿すると、検証が正常に機能し、ValidationSummary に適切なエラー メッセージが表示されて返信されます。これらのエラーメッセージが表示されている間、これらのフィールドを非表示にします
document.getElementById("schoolNotListed").style.display = "なし";
フォームを再度投稿しようとすると、毎回 ValidationSummary エラーが表示されます。コントロールはコントローラーに到達せず、viewmodel の Validate() 関数にも到達しません。フォームの投稿を妨げているのは、クライアント側の検証です。
javaScript によって現在非表示になっているこれらのフィールドに対して、この検証をスキップまたは無効にする方法はありますか。または、javaScript を使用して ModelState をクリアできますか?
別の方法でアプローチする方法について何か提案があれば教えてください。
ありがとう
asp.net-mvc-3 - 同じページに 2 つの ValidationSummary
ページに 2 つのフォームがあり、各フォームには独自のValidationSummary
. one form
問題は、both ValidationSummary
表示検証メッセージに対してサーバー側の検証が実行されることです。ValidationSummary
同じページに2 つValidationSummary
あり、割り当てられているすべてのフォームに対して実行することは可能ですか?
c# - CustomValidator と TextBox データの損失に関する問題
マイページは、ユーザーがユーザー名、メールアドレス、パスワードを入力する登録ページです。これが私のコードビハインドです:
ここに私のページがあります:
したがって、問題は、カスタム バリデータが失敗した場合、ページがエラー メッセージでリロードされたときに、テキスト ボックスが空になることです。しかし、奇妙なことに、Firebug のテキストボックス要素を調べるvalue
と、input
が設定されているのに、何らかの理由でページに表示されないだけです。
テキストボックスとページで true に設定しようとEnableViewState
しましたが、役に立ちませんでした。
私が間違っていることを知っている人はいますか?
c# - 2つの異なるValidationSummaryコントロールを単一のビューに表示します。Silverlight
ビューに2つの異なるValidationSummaryコントロールを表示したい場合はどうすればよいですか?最初のコントロールは、定期的な検証エラーを表示するコントロールであり、単純です。2つ目はValidationSummaryコントロールで、これには警告が含まれている必要がありますが、エラーは含まれていません。
これを達成するために、私は次の手順を実行しようとしました。
- ViewModelに新しいプロパティを追加します。このプロパティはINotifyDataErrorInfoインターフェイスを実装し、FrameworkElementから継承されます。
- ValidationSummarysのターゲットバインディングをプロパティに設定します。
- プロパティのErrorChangeを呼び出すコレクションに新しい警告を追加する場合。
ただし、ValidationSummaryには警告は表示されません。このプロパティのErrorChangeイベントをサブスクライブしないでください。
私が間違っていることは何ですか?
validation - Enter キーを押しても検証の概要が表示されませんか?
私はプログラミングにかなり慣れていないので、これが私の最初の投稿ですので、ご容赦ください。
Enter キーを押して適切な検証の概要を表示すると、複数のテキスト ボックスを検証しようとしています。Enter キーを押すとフォームは検証されますが、情報を変更してもう一度 Enter キーを押しても検証の概要が更新されません。ただし、「送信」ボタンを押すと更新されます。
ユーザーがテキストを入力していないか、パスワードが一致していないかどうかを示すために、2 つの異なる検証概要を使用しています (ユーザーが項目を空白のままにした場合、ヘッダー テキスト プロパティを使用して 1 つのメッセージのみを表示するため)。
これについて1時間以上検索しましたが、見つけた最高のものはこれでした:
しかし、私はそれを使用する方法を理解していません。