نادیده گرفتن Route در Mvc
یکشنبه 4 بهمن 1394در این مقاله می خواهیم در مورد نادیده گرفتن route در mvc صحبت نماییم، اینکه اگر شما چند controller داشته باشید و بخواهید یکی از آن ها نادیده گرفته شود چگونه خواهد بود.برای درک بهتر موضوع مقاله ی زیر را مطالعه نمایید.
در بعضی از پروژه های خود شما از تعداد زیادی controller استفاده می نمایید، و این که به کدام controller نیاز داشته باشید یک مساله خواهد بود، تا اینکه راه حلی ارائه شده که این راه حل ارسال و درخواست یک فرآیند را می تواند نادیده بگیرید.
در این مقاله ما دو controller داریم یکی Employee و دیگری Student حالا ما نیاز داریم که Employee صدا زده شود پس باید از متد RegisterRoutes در Routeconfig کد زیر را اضافه نمایید.
routes.IgnoreRoute("Employee/");
یک پروژه ی جدید از نوع MVC ایجاد نمایید به صورت زیر:
حالا یک controller جدید ایجاد نمایید:
یک controller خالی به نام student ایجاد نمایید:
کد controller به صورت زیر خواهد بود:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace IngoreRoute.Controllers { public class StudentController: Controller { // GET: Student public ActionResult Index() { return View(); } } }
روی متد Index کلیک راست نمایید و یک View ایجاد کنید به صورت زیر:
داخل صفحه ی Index فقط یک Header قرار دهید به صورت زیر:
@{ ViewBag.Title = "Index"; } <h2>Student Controller</h2>
مثل مراحل بالا یک Controller دیگر ایجاد نمایید نام آن را Employee بگذارید:
قبل از اجرای برنامه ما نیاز داریم که controller و action مورد استفاده را درRouteconfig.cs اضافه نماییم.
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Student", action = "Index", id = UrlParameter.Optional } );
برنامه را اجرا بگیرید به صورت زیر است:
زمانی که در آدرس Employee را بنویسید به صورت زیر خواهد بود:
در بالا ما به راحتی به Employee دسترسی پیدا کردیم حالا می خواهیم اینگونه نباشد و به راحتی به Controller Employee دسترسی پیدا نکنیم پس باید در Routeconfig.cs کد زیر را بنویسید:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.IgnoreRoute("Employee/"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Student", action = "Index", id = UrlParameter.Optional } );
زمانی که برنامه را اجرا بگیرید به صورت زیر خواهد بود:
زمانی که در Url نام controller خود را بنویسید خطای 404 خواهد داد.
خطای 404 به این منظور است که شما صفحه ی مورد نظر را پیدا نکرده است.
- ASP.net MVC
- 2k بازدید
- 2 تشکر