0

MVC で次の定義を持つアクションがあります。

 public ActionResult Create(Club club)
    {       
        if (ModelState.IsValid)
        {
            Club clubFound = db.Clubs.FirstOrDefault(x => x.ClubName == club.ClubName);

            if (clubFound != null)
            {
                ViewBag.CountryID = new SelectList(db.Countries.OrderBy(x => x.CountryName), "CountryID", "CountryName");
                ModelState.AddModelError("", "The club already exists in the database.");
                return View();
            }
            else
            {
                db.Clubs.Add(club);
                db.SaveChanges();
                string message = MvcHtmlString.Create(@"Club added to the db successfully. <a href=""/"">Go back to home page.</a>").ToString();
                //TempData["SuccessMessage"] = "Club successfully added.";
                return Json(message, JsonRequestBehavior.AllowGet);
            }
        }

        return View();           
    }

すべてのデータに問題がなければ、メソッドは正常に実行され、すべて問題ありません。しかし、モデル エラーが発生し、アクションが View を返すと、実際にはビュー内で返されるため、あるビューが別のビューに表示されます。私の質問は、通常の POST リクエストのように、すべてのエラーを含むビューを通常返す方法です。ビューからのデータは常に Ajax フォームからのものであるため、リクエストは常に非同期です。

4

1 に答える 1