タグ付けされた質問 「modelstate」


3
ModelState.AddModelError-プロパティ以外のエラーを追加するにはどうすればよいですか?
私はデータベースをチェックインしてCreate(FooViewModel fvm){...}、fvm.prop1およびfvm.prop2がその組み合わせにすでに存在するかどうかを確認しています。もしそうなら、modelstateにエラーを追加して、ビュー全体を返します。私は試した: public ActionResult Create(FooViewModel fvm){ if (ThatComboAlreadyExists(fvm)) { ModelState.AddModelError("Model", "There is already one like that"); return View(fvm); } } ...しかし、エラーが表示されません。エラーが表示さHtml.ValidationSummaryれると思います。「モデル」は正しいキーではないという疑いがありますが、Googleで何かを見つけることができませんでした。

13
ASP.NET MVC ModelStateエラーをjsonに変換する方法
すべてのModelStateエラーメッセージのリストを取得するにはどうすればよいですか?すべてのキーを取得するこのコードを見つけました:(ModelStateエラーのあるキーのリストを返します) var errorKeys = (from item in ModelState where item.Value.Errors.Any() select item.Key).ToList(); しかし、IListまたはIQueryableとしてエラーメッセージをどのように取得しますか? 私は行くことができました: foreach (var key in errorKeys) { string msg = ModelState[error].Errors[0].ErrorMessage; errorList.Add(msg); } しかし、それは手動で行っています-確かにLINQを使用してそれを行う方法はありますか?.ErrorMessageプロパティがチェーンのはるか下にあるため、LINQの記述方法がわかりません...


10
Asp.net MVC ModelState.Clear
Asp.net MVCでのModelStateの役割の簡潔な定義(またはリンクへのリンク)を誰かに教えてもらえますか?特に、どのような状況で電話をする必要があるか、または望ましいかを知る必要がありますModelState.Clear()。 ビットオープンエンドハァ ...申し訳ありませんが、私が実際に何をしているのかを教えてくれると助かると思います: 「ページ」というコントローラーで編集アクションがあります。最初にページの詳細を変更するフォームを表示すると、すべてが正常にロードされます(「MyCmsPage」オブジェクトにバインド)。次に、MyCmsPageオブジェクトのフィールドのいずれかの値を生成するボタンをクリックします(MyCmsPage.SeoTitle)。それはうまく生成し、オブジェクトを更新し、新しく変更されたページオブジェクトでアクション結果を返し、関連するテキストボックス(を使用してレンダリングされた<%= Html.TextBox("seoTitle", page.SeoTitle)%>)が更新されることを期待します...しかし、ロードされた古いモデルの値が表示されます。 私はそれを使って回避しましたModelState.Clear()が、なぜ/どのように機能したのかを知る必要があるので、私は盲目的にそれをしていません。 PageController: [AcceptVerbs("POST")] public ActionResult Edit(MyCmsPage page, string submitButton) { // add the seoTitle to the current page object page.GenerateSeoTitle(); // why must I do this? ModelState.Clear(); // return the modified page object return View(page); } Aspx: <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyCmsPage>" %> …


10
ASP.NET MVC-RedirectToAction全体でModelStateエラーを保持する方法
次の2つのアクションメソッドがあります(質問では簡略化しています)。 [HttpGet] public ActionResult Create(string uniqueUri) { // get some stuff based on uniqueuri, set in ViewData. return View(); } [HttpPost] public ActionResult Create(Review review) { // validate review if (validatedOk) { return RedirectToAction("Details", new { postId = review.PostId}); } else { ModelState.AddModelError("ReviewErrors", "some error occured"); return RedirectToAction("Create", new { …

5
MVC3はModelStateエラーを削除します
ユーザーがローカルファイルシステムから選択した画像をアップロードしている状況があります。私の見解では、私のフォームには基本的に2つの送信ボタンがあります。1つは通常どおりフォームを送信するために使用され、すべての検証が実行されます。2つ目は画像をアップロードするためだけのもので、その場合はまだ検証したくありません。 「画像のアップロード」送信ボタンに「style-namecancel」のクラス値を指定することで、クライアント側の検証をオフにすることができました。 <input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" /> これで、ポストバックすると、モデルにプロパティUploadImageButtonがあり、このボタンをクリックすると、このプロパティにデータが入力されます(入力の名前はプロパティと一致します)。このようにして、フォームが実際の送信ボタンによって送信されたのか、UploadImageButtonによって送信されたのかがわかります。 私の質問はこれです... ServerSide検証をオフにするにはどうすればよいですか?ユーザーがこのボタンをクリックしたときに検証の概要情報が表示されないようにします。これを使用してカスタムモデルエラーを追加できることを知っています ModelState.AddModelError("{key}", "{error msg}"); モデルエラーを削除する方法を探しています。これは可能ですか? 編集: これが私が思いついたものです: foreach (var key in ModelState.Keys.ToList().Where(key => ModelState.ContainsKey(key))) { //ModelState.Remove(key); //This was my solution before ModelState[key].Errors.Clear(); //This is my new solution. Thanks bbak }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.