0

サイトのすべてのページに単純なフォームがあり、フォームはポットに戻り、ページコントローラーによって処理されます。

各ページの ForController..

 [HttpPost]
 public ActionResult Index(Models.FindTutorFormModel formModel)
 {
   if (ModelState.IsValid)
   {
      return Redirect("/thanks/");
   }
   return View();
  }

サイト内のすべてのページ コントローラーのコードを複製する必要はありません。これをリファクタリングする簡単な方法はありますか?

4

1 に答える 1

1

これがあなたのタスクに最適なアプローチであるかどうかはわかりませんが、継承を使用できます

    using System.Web.Mvc;

    namespace MvcApplication2.Controllers
    {
        public class BaseController : Controller
        {
            public ActionResult Thanks()
            {
                return Content("Thanks!");
            }
        }

        public class HomeController : BaseController
        {
            public ActionResult Index()
            {
                ViewBag.Message = "Welcome to ASP.NET MVC!";
                return View();
            }
            public ActionResult About()
            {
                return View();
            }
        }

        public class InfoController : BaseController
        {
            public ActionResult Index()
            {
                ViewBag.Message = "Welcome to ASP.NET MVC!";
                return View();
            }
        }
    }

したがって、すべてのコントローラーで同じメソッドが使用されます。それが役立つことを願っています!

于 2013-03-28T16:18:54.303 に答える