問題タブ [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 投票する
1 に答える
2918 参照

model-view-controller - 複数のViewModelを持つMVC 3 ModelState.IsValid

他の 3 つの ViewModel で構成される ViewModel があるとしましょう。1 つは項目のリストを含み、もう 1 つは [Required] 属性を持つクラスのインスタンスを含み、次に他の項目の別のリストを含みます。

ユーザーが 2 つのリストのいずれかの項目のいずれかを選択した場合、2 番目のオブジェクトの [Required] 属性によって ModelState が無効になることは望ましくありません。 [必須] 属性の項目をフォームに入力する必要があります。

どうすればこの問題を解決できますか?

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

asp.net-mvc - ASP.netMVC単体テストのModelStateエラーディクショナリのエラーメッセージにアクセスします

次のようなアクション結果にキーと値のペアを追加しました。

私はユニットテストでこれらのようないくつかの厄介なコードを持っています:

もちろん、エラーが1つしかない場合はいつでも機能します。
私は好きではありませんfacilities.ViewData.ModelState["Error"].Errors.FirstOrDefault().ErrorMessage

その辞書から値を取得する簡単な方法はありますか?

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

asp.net - 非同期コントローラーでモデル状態を検証する方法

非同期コントローラーを使用しようとしていますが、ユーザー入力を検証する方法がわかりません。

以下は、私のコントローラーで定義された 2 つの非同期メソッドです。SearchAsync メソッドまたは SearchCompleted メソッドで ModelState.IsValid を確認する必要があります。SearchAsync の場合、戻り値の型が void であるため、どのようにビューの結果が返されますか。SearchCompleted の場合、メソッドは searchForm パラメータをどのように認識しますか。

0 投票する
1 に答える
468 参照

jquery - asp.net-mvcで、PartialView()からJson応答に移行する場合、ModelState検証エラーを表示するにはどうすればよいですか?

私はasp.net-mvcWebサイトを持っており、サーバーでPartialView()を使用してポップアップを移行し、Json()応答を返すだけです(クライアント側でバインディングを実行します)。この場合、それは約10倍速いように見えます。これは素晴らしいことです。

私が遭遇した1つの問題は、既存のコードが問題の検証とUIの強調表示にModelStateを多く活用していることです。

サーバーからJson()応答を受信して​​いるだけの場合、検証を行うための推奨される方法はありますか?

特に:1。ModelStateエラーをGuiに返すための推奨される方法は何ですか(そして、asp.net-mvcmodelstateで箱から取り出したのと同じ赤いハイライトとバインディングを取得します。2。引き続きmodelstateまたはditchを使用する必要があります別の完全なソリューションのためにそれを。3。この移行中に心配する他の何か。

0 投票する
4 に答える
172436 参照

asp.net-mvc-2 - ModelState.AddModelError-プロパティ以外のエラーを追加するにはどうすればよいですか?

データベースをチェックインして、とがその組み合わせにすでに存在するCreate(FooViewModel fvm){...}かどうかを確認しています。もしそうなら、モデル状態にエラーを追加してから、ビュー全体を返します。私は試した:fvm.prop1fvm.prop2

...しかし、エラーが表示されるHtml.ValidationSummaryと思われる場所にエラーが表示されません。「モデル」が正しいキーではないのではないかと疑っていますが、Googleでは何も見つかりませんでした。

0 投票する
1 に答える
13462 参照

asp.net-mvc - カスタムモデルバインディング、モデル状態、およびデータ注釈

カスタムモデルのバインド、モデルの状態、およびデータの注釈に関していくつか質問があります。

1)モデルにデータ注釈がある場合、カスタムモデルバインダーで検証を行うのは冗長ですか?それがデータ注釈のポイントであると私が思ったからです。

2)コントローラーがモデルの状態を有効でなくても有効として扱うのはなぜですか。主にNameプロパティをnullまたは短すぎます。

3)カスタムモデルバインダーをコンストラクターメソッドと考えても大丈夫ですか。それが私に思い出させてくれるからです。

まず、私のモデルです。

次に、カスタムモデルバインダーを使用して、モデルのいくつかのプロパティをバインドしています。それを機能させてからリファクタリングしようとするだけで、速くて汚いことを気にしないでください。

今私のコントローラーのアクション。

編集

別のstackoverflowの質問でいくつかのコードを見つけましたが、どの時点でこの可能なソリューションに次の値を挿入するかわかりません。

新しいオブジェクトが作成されたときに注入したいもの:

上記のコードを以下のものにするにはどうすればよいですか(可能な解決策):

0 投票する
0 に答える
1169 参照

javascript - ModelState.IsValid が検証に失敗しました!

だから私はコンタクトフォームの電子メールを送信するために使用する単純なクラスを持っています。

上記は私のクラスで、私のコントローラーは次のとおりです

何らかの理由で、ModelState.IsValid は true として返されますが、EnquiryEmail オブジェクトを調べて、それらに対して「必須」の検証を持つ値に対して null を確認できます。

ModelState.IsValid を調べると、4 つの値が表示されます。Null は、実際には「AttemptedValues」という名前のプロパティの下に空の文字列として表示されます。それがここでの問題なのか、それとも単に ModeState が行うことなのかはわかりません!

いずれにせよ、正しく検証されていません。それが何であるかについてのアイデアはありますか?

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

asp.net-mvc - ModelStateエラーをTempDataにコピーし、ビューに表示します

私のアクションメソッドのほとんどは、成功するとPartialViewsを返し、失敗するとRedirectToActionの結果を返します。そのために、モデル状態エラーをTempDataにコピーして、ユーザーに表示できるようにします。SOといくつかの外部リンクに関するいくつかの質問をここで読みましたが、どれもうまくいきませんでした... MvcContribのModelStateToTempData属性でActionMethodを装飾し、ビューに次のように表示しています:(これは単なるプロトタイプです)

エラー自体を表示するのではなく、取得し続けSystem.Web.Mvc.ValueProviderResultます。これがすべて間違っていることはわかっています。最終的には、モデルの状態エラーをTempData内のディクショナリにフィルタリングしたいのですが、今のところ、ビューにエラー文字列を表示したいだけです。

PS:MvcContrib属性を使用せずに手動で実行しようとしましたが、同じ結果が得られました。しかし、私は自分のコードを使用することを好みます。そうすれば、問題全体をより細かく制御できるようになります。

助言がありますか?

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

jquery - ModelState エラーを維持しながら MVC ajax と PartialViews を使用する方法

MVC3を使用しています。送信時に、ページを更新する PartialView を返すフォームがあります。質問/問題は、エラーが発生したときに ModelState エラーを表示し、フォームの値をそのまま維持するにはどうすればよいですか?

この質問は以前に尋ねられたようですが (以下の参考文献を参照)、完全な回答/解決策をまだ見つけていませんが、混乱しています...

私の非常に単純なモデル

私のビューは次のようになります。

そして、私の PartialView は出力を吐き出すだけです:

そして、私のController Actionメソッドはこのように

問題は、ModelState エラーでビューを返す方法です。

私が提供したリンクでは、クライアント側がエラー対成功条件 (つまり、RenderPartialViewToString) を検出できるように、ステータス コードを含む json を返すことについての話があります。しかし、これがどのように接続/消費されるのか、私にはよくわかりません。

例: 成功した場合、部分ビューのみを表示しますか? エラーの場合、更新された ModelState でページを更新するだけですか? 誰かがピースをリンクして、エンドツーエンドの例、つまり View/jquery ajax 呼び出しを示すことができますか?

余談:代替の実装として、このアプローチに似たものを使用して動作させましたが、わかりません...それは間違っているようで、成功した場合よりも多くのページを更新しているためですシナリオ。

http://jvance.com/blog/2010/02/20/MakingAnAjaxFormWithJQueryInASPdotNETMVC.xhtml

たとえば、コントローラーは次のようになります。PartialViews には、成功バージョンとエラー バージョンの両方で「フォーム」コードが含まれています。

ありがとう

0 投票する
1 に答える
207 参照

asp.net-mvc - c#mvc構造-簡単な質問

ここにいくつかの情報が必要です。私はMVCでまったく新しいので、皆さんにとっては、答えるのは簡単な質問になると思います。私は次の構造を持っています:

Controller.cs

最後に、PageMainビューには次のものがあります。

さて、今、私の質問は次のとおりです。そのような構造は有効ですか(ここで有効とは、それが適切に構造化されているか、より良い方法があるかどうかを意味します)?ModelState.AddModelError()パーシャルビュー'Partial1'のメソッドで例外に到達するにはどうすればよいですか?

混乱している場合は、要約すると次のようになります。

  • PageMainには、url-parameterに従って作成されたテーブルがあります。実際には、別の部分ビューで作成されていますが、PageMainに表示されます
  • テーブルを編集すると、フォームはフォームアクションにリダイレクトします。フォームアクションは、データベースを編集するためにコードが実行されます。
  • 最後に、エラーが発生した場合、ユーザーはFormActionに残りますが、このページで使用されるビューは引き続きPageMainです。同じページを2回作成するようなものであるため、このページに別のビューはありません。つまり、別のビューを作成したくないエラーを示す部分ビューを含めるだけです。代わりに、エラーが発生した場合にのみ、if-elseロジックを使用して部分ビューを表示しようとしています。