問題タブ [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-mvc-3 - アクションフィルターでModelStateを確認します
メソッドModelState.IsValid
のカスタムアクションフィルターをチェックインできますか?OnActionExecuting
asp.net-mvc-3 - MVC3 削除 ModelState エラー
ユーザーがローカル ファイル システムから選択した画像をアップロードしている状況があります。私の見解では、私のフォームには基本的に2つの送信ボタンがあります。1 つは通常どおりフォームを送信するために使用され、すべての検証が実行されます。2 つ目は、画像をアップロードするためだけのものです。この場合、まだ検証したくありません。
「画像のアップロード」送信ボタンに「style-name cancel」のクラス値を与えることで、クライアント側の検証をオフにすることができたので、
ここで、ポストバックすると、モデルに UploadImageButton プロパティがあり、このボタンをクリックすると、このプロパティが入力されます (入力の名前がプロパティと一致します)。このようにして、フォームが実際の [送信] ボタンによって送信されたのか、UploadImageButton によって送信されたのかがわかります。
私の質問はこれです... サーバー側の検証をオフにするにはどうすればよいですか? ユーザーがこのボタンをクリックしたときに、検証の概要情報が表示されないようにします。これを使用してカスタムモデルエラーを追加できることを知っています
モデル エラーを削除する手段を探しています。これは可能ですか?
編集:
これが私が思いついたものです:
modelstate - エンティティ フレームワークなしの asp.net mvc
私はasp.net mvcを学んでおり、それを実証する素晴らしいチュートリアルを経験しました。このチュートリアルでは、Entity Framework も使用しました。
使用する必要がある独自のデータ アクセス クラスがあります。クラスと MVC フレームワークの間のギャップを埋めるために何をする必要があるかについて、少し混乱しています。たとえば、チュートリアルでは、MovieController.cs ファイル内に、次のような Edit メソッドがあります。
Entity フレームワークを使用しない場合、どのようになりますか? ModelState.IsValid を使用して、完了したように状態を保存する必要がありますか?
お知らせ下さい。エンティティ フレームワークを使用せずに asp.net mvc を使用する明確に記述された例は素晴らしいでしょう。
私が知る必要があるのは、ここで状態が果たす役割と、それを使用することが必須なのか、それともエンティティ フレームワークの動作の一部にすぎないのかということです。
これを次のように書き直します。
myDBObject は、カスタム データベース アクセス オブジェクトです。
c# - クラスレベルとプロパティレベルのASP.Net MVC 2カスタム属性を同時にアクティブにすることはできますか?
私はasp.net mvc 2 Webアプリケーションに取り組んでいます。私は3つのプロパティを持つモデルを持っています:
「必須」のプロパティ属性が 1 つと、クラス レベルに 1 つの属性があります。
ビューにフォームを投稿し、CountryID が入力されていない場合、ModelState ディクショナリにその問題に関するエラーがあります。他の属性は無視されます ("IsCityInCountry")。選択した国にない CountryID と CityID を選択すると、それに関する適切な検証メッセージが表示され、ModelState には別のキー ("") があります。アドバンテージにはプロパティ属性とクラス属性があることを理解しています。私の質問; 関連する属性の種類 (クラスまたはプロパティ属性) に関係なく、すべての検証メッセージを同時に取得する方法はありますか? 前もって感謝します。
asp.net-mvc - TempData の使用に関する懸念事項
ChildAction からレンダリングされたフォームの ModelState エラーを永続化するために TempData を使用しています。このフォームを使用すると、ユーザーはブログ投稿にコメントを投稿できます。ModelState が有効でない場合、エラーは TempData にコピーされ、ChildAction をShowPost
介して検証エラーを含むコメント フォームを表示するアクションにリダイレクトします。
私の懸念は、ModelState エラーを TempData に保存してから ChildAction に再表示するまでの間に、実際に 2 回リダイレクトしていることです。これは、私のShowPost
アクションでは、現在の投稿に一致する有効なスラッグがあるかどうかも確認し、そのスラッグが見つからない/正しくない場合はリダイレクトしてそのスラッグを含めるためです。つまり、ユーザーがコメントを投稿すると、次の場所に投稿されます。
次の場所にリダイレクトされます。
次にリダイレクトします。
コメントエラーが表示される前。私のテスト サーバーでは問題なく動作していますが、この 2 番目のリダイレクトで特定の問題が発生する可能性はありますか? 私が読んだ投稿/質問は、リダイレクトの直後に TempData を使用する必要があることを示唆しているため、私は尋ねています。そうでない場合、リクエスト間でデータが失われる可能性があり、2 回目のリダイレクトが原因ではないかと考えています。
asp.net - TryUpdateModelを使用した更新でモデルプロパティを除外しないのはなぜModelState.Removeがないと機能しないのですか?
コントローラの以下のコードでいくつかのプロパティを除外してモデルを更新しようとしていますアクション:
モデルを更新しようとすると、編集ビューにリダイレクトされ、BoardAbbr
フィールドが必要であるというエラーメッセージが表示されます。これは、フィールドを更新する必要がある場合は完全に正当ですBoardAbbr
。しかし、ご覧のとおり、以下のコードでいくつかのフィールドを除外しておりBoardAbbr
、そのうちの1つです:
次に、メソッドの前に以下のコードを配置しますTryUpdateModel
。これは魅力のように機能します。
ここで私を悩ませているのは、私が何か間違ったことをしているのか、フレームワーク内に何か間違っていることが構築されているのかということです。私は最初のものがここでの問題であるに違いない。
TryUpdateModel
更新時にモデルプロパティを除外しないのはなぜModelState.Remove
ですか?
正直なところ、私はそれをあまり掘り下げず、まっすぐここに来て、皆さんにこの質問を叫びました。
asp.net-mvc - ModelState がフィールドが無効であると言う場合は、フィールド値をクリアします
ModelState
フィールドが無効であることが示されている場合、モデル内のフィールドの送信された値をクリアしたいと考えています。
これは私がこれまでのところ得たところですが、モデルのキーと値を結びつけることはできません。助言がありますか?
ajax - ModelState が Invalid の場合にデータを送信した後の Ajax フォームと UpdateTargetId
私の見解では、2 つの部分的な見解があります。
- 最初の部分ビュー (PV1) : ユーザーはテキスト ボックスに項目を入力し、ajax フォームから送信できます。
- 2 番目の部分ビュー (PV2) : ユーザーは、以前に送信された項目のリストを表示できます。
PV1 はUpdateTargetId
PV2 の div で使用します。これは、新しく追加された項目でリストを更新するためです。
PV1 で提出されたアイテムが有効な場合、すべてがうまく機能します。ModelState.IsValid == false
ajaxフォームが送信されたときに機能しません。UpdateTargetId が PV2 にあるため機能しません。ModelState エラーを表示するには PV1 を更新する必要があります。そのため、PV2 で PV1 の複製が発生しました。
以下は、同様の問題に関する別のスタックオーバーフローの投稿ですが、解決策は提供されていません。
ModelState が無効な場合、ASP.NET MVC AJAX は UpdateTargetId を変更します
Jsonの代替案が解決策になると思いますが、標準のAjax フォームメソッドをここでのニーズに合わせて適応できるかどうか疑問に思っています。
c# - MvcModelStateKeyForプロパティ
これまで、カスタム検証を行う場合やModelStateをいじる場合は常に、(プロパティ名を反映する)マジックストリングに依存する必要がありました。確かにもっと良い方法があるはずです。
2つの送信ボタンがあるフォームがあるとします。必須属性を追加して、検証ルールをすでに設定しています。
これにより、常に両方のフィールドが検証されます。ただし、上記のモデルのフォーム表示とエディターに2つのボタンを追加したとします。ボタン1はValueOneのみを必要とし、ボタン2はValueTwoのみを必要とします。
あまりきれいではありませんが...私の牛肉はマジックストリング「ValueOne」と「ValueTwo」を使用しています。また、エラーをクリアする方法もあります。それらのキーを生成する方法はありますか?私は次のようなものを探しています:
そして、論理的な拡張:
車輪の再発明を始める前に、このようなものはすでにどこかに隠されていますか?
質問する前に、私は通常、送信ボタン名を表す定数文字列を含む静的クラスSubmitActionsを定義します。いいえ、ビューがレンダリングされたため、複数のフォームに分割することはできません。
提案をありがとう。
c# - ModelState のテストは、asp.net mvc で常に有効です。
コントローラーのアクションをテストするとき、ModelState は常に有効です。
そして私のコントローラー。
そしてテスト:
製品に名前、説明、および価格がないのに、なぜ modelState が有効なのですか?