نادیده گرفتن 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 تشکر