問題タブ [model-validation]

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 投票する
0 に答える
519 参照

asp.net-mvc-3 - レイアウト ビューの複数の部分ビューと 1 つの送信ボタン

これがこれを行うための正しいアプローチであるかどうかはわかりません。私の検索では、複数の部分ビューと 1 つの送信ボタンしか見つかりませんでしたが、レイアウトにはありませんでした。

同じ _ViewStart.cshtml -> _Layout.cshtml (MVC 規則) を持つ独自のモデルを持つツリーの異なるビューがあります。これは最初のコントロールです:

3 つのビューはかなり一般的ですが、送信ボタンは必要ありません。

また、_Layout.cshtml には、3 つのビューに共通の検証コードを含む部分ビューがあります。

_CommonValidation ビューにも送信ボタンは必要ありません。

部分的な _CommonValidation ビューと RenderBody() ビューのモデルを検証するために、Layout.cshtml で "ONLY ONE BUTTON" 送信ボタンを使用できますか? _Layout.cshtml ビューに厳密に型指定された部分ビューを含めることをお勧めしますか?私は MVC 3 を初めて使用するので、どの方向に進むべきかわかりません... JavaScript、HTML ヘルパーかもしれません... ありがとう

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

.net - .Netデータ注釈とモデル階層

みんな!いくつかのケースで、異なる必須フィールドを持つモデルを使用してasp.net mvc 3で作業.netデータ注釈を作成するためのコードを実装することと混同しています(6)。私はモデルを持っています:

私が必要としているのは、その中の必要な領地を動的に変更する可能性です。いくつかのグーグルの後、それは不可能であり、モデルの継承を使用することを思いついた。つまり、次のような基本モデルがあります。

ここで、仮想プロパティは、必須フィールドである場合とそうでない場合があるプロパティです。そして、私はこのようなベースからいくつかの派生モデルを持っています:

}

そして、ビューとコントローラーのベースモデルBaseOpportunityModelで使用できるようになります。しかし、私は次の問題に遭遇しました:

  • 検証では、BaseOpportunityModelのアノテーション属性を使用し、派生モデルの属性を無視します。

何が間違っていますか?誰かが私を正しい方向に導くか、この問題で私を助けることができますか?前もって感謝します。

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

asp.net-mvc - MVC4: ModelState.IsValid は常に true を返します

データを非同期的にコントローラーに投稿するフォームを含む PartialView があります。コントローラーは、有効な場合はユーザーを追加しModelState、そうでない場合は、無効なモデルを含む PartialView を返します。私が直面している問題は、ModelState何があっても常に有効であることです。フォームが適切にシリアル化され、すべてのプロパティが入力されていることがわかりますDynamicActionUserModel.RegisterModel

なぜそうなるのかわかりませんが、モデル内にモデルがあるためにモデル バインディングが機能しない可能性はありますか?

これが私のコードです...

意見

_User部分ビュー

DynamicActionUserModel

コントローラ

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

c# - カスタム ModelValidatorProvider を Web API プロジェクトに追加するには?

一部の MVC コードを Web API に移動しており、カスタムの ModelValidatorProvider を更新する必要があります。私のバリデーターは、System.Web.Http.Validation 名前空間を継承する必要があるだけで、ほぼ同じままでいられるようです。

私が理解できないのは、プロバイダーを Web API に追加する方法です。MVC を使用する場合、global.asax に以下を追加するだけです。

Web API でカスタム プロバイダーを使用するにはどうすればよいですか?

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

c# - 複雑なモデル/サブモデルの検証 (MVC) のための最良のアプローチ

問題

MVC 内でモデルの検証を行う方法はたくさんあり、このトピックに関するドキュメントもたくさんあります。ただし、同じタイプの「サブモデル」であるモデルのプロパティを検証するための最良のアプローチが何であるかはよくわかりません。

次のことに注意してください

  • TryUpdateModel/TryValidateModel私はまだメソッドの利益を得たいです
  • これらの「サブモデル」にはそれぞれ、厳密に型指定されたビューがあります
  • MainModel全体的な表示ビューをレンダリングする、クラスの厳密に型指定されたビューが 1 つあります。

少し混乱するかもしれませんが、明確にするためにいくつかのコードを挿入します。例として、次のクラスを取り上げます。

メインモデル:

一部のサブモデル:

メインモデルコントローラー:

このコードは今まですべて意味があると信じています (そうでない場合は修正してくださいTryValidateModel()) ValidationAttribute

問題はここにあります。最適な場所はどこか、また、Edit メソッドを条件付きステートメントで埋めずに利用しながら、 andにさまざまな検証制約を設定するための最良かつ最も洗練された方法はどこにあるでしょうか。Prop1Prop2TryValidateModel()ModelState.AddModelError()

通常、クラスに検証属性を含めることができますがSomeSubModel、この場合は機能しません。プロパティごとに異なる制約があるためです。

他のオプションは、クラスにカスタム検証属性が存在する可能性があることですが、オブジェクトがビューに直接渡され、検証時にそのオブジェクトへの参照がないMainModelため、この場合も機能しません。SomeSubModelMainModel

私が考えることができる唯一の残されたオプションは、各プロパティの ValidationModel ですが、これに対する最善のアプローチが何であるかはよくわかりません。

解決

@MrMindorの回答に基づいて、私が実装したソリューションを次に示します。

基本 ValidationModel クラス:

Prop1 の検証モデル

Prop2 の検証モデル

アクション

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

asp.net-mvc - モデル検証が開始される前にモデルに監査値を設定する

次のようないくつかのプロパティを使用して基本クラスを定義しました。

コントローラで次のように、この基本クラスから継承するモデルオブジェクトを作成する場合:

この段階では監査プロパティがまだ設定されていないため、ModelState.IsValidいつものように機能することはありません。false

この種の値を一般的な場所に設定する方法はありますか(ヘルパークラスを作成しようとしましたが、取得方法はUser?)、モデルの検証が始まる前に設定しますか?

または、唯一の選択肢は、監査プロパティをnullabeにすることです[必須ではありません]?

編集:-

@archilの提案を試しました:

HAHAHAH.........これをGet実行してください

まだ取得中:

  • CreatedOnフィールドは必須です。
  • RefreshedOnフィールドは必須です。
0 投票する
4 に答える
7036 参照

c# - MVC 4 モデルの検証を無効にするには?

私は、mvc 4 で書かれたプロジェクトに取り組んでおり、ウィザードのような動作のインスタンスがいくつかあります。つまり、同じ半分満たされたモデルを渡すいくつかのビューのチェーンです。2 番目のビュー コントロールから始めて、最初は無効として表示されます (これは論理モデルであり、コントローラー メソッドに渡された対応するプロパティは空です)。現在 ModelState.Clear(); は解決策が使われていますが、モデルを引数として各メソッドに入れるのは見栄えが悪いです。ここにあるアプローチと同じAsp.Net MVC でモデル検証を無効にする

プロジェクトが取得したモデル クラスが多すぎる (100 以上) ため、それぞれを手動で登録できません。

モデルの検証を完全にオフにする簡単な方法 (おそらく .config のキー) はありますか?

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

asp.net-mvc-3 - ローカライズされたモデルの検証が 9 未満で機能しない

MVC 3 アプリケーションでローカライズされたモデル検証を使用しています。Required 属性と errormessage リソースを使用してこれを行いました。これは、7 と 8 を除いて、ほぼすべてのブラウザで動作します。以下に、私が使用したサンプル コードを示します。

サンプルコード:

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

c# - MVC選択モデルの検証

私のモデルには、次のタイプのHomeAddressとBillingAddressを持つ人がいます。

必須プロパティHomeAddressでのみ「必須」プロパティを検証するエレガントな方法を探しています。私は通常のcomponentmodel属性を使用しており、MVCからの組み込みモデル検証を使用しています。したがって、私が探しているのは、LocationがPerson.HomeAddressまたは.BillingAddressにあるかどうかをチェックし、最初のケースでのみ検証する属性です。または、十分な情報が入力されていない場合に備えて、デザインを変更してバインディングアドレスをNULLにする必要がありますか?

0 投票する
8 に答える
23743 参照

c# - 配列には1つの要素が含まれている必要があります

私は次のクラスを持っています:

TaskDescriptions配列に少なくとも1つの要素が含まれている必要があるように、上記のデータ注釈が必要ですか?のように[Required]。これは可能ですか?