MVC'de yönlendirme, tarayıcı isteğini denetleyici eylemiyle eşleme ve yanıtı geri döndürme işlemidir. Her MVC uygulamasının varsayılan için varsayılan yönlendirmesi vardır. Ana SayfaDenetleyici . Yeni oluşturulan denetleyici için özel yönlendirme ayarlayabiliriz.
RouteConfig.cs Dosya, uygulamanın yönlendirmesini ayarlamak için kullanılır. Başlangıçta aşağıdaki kodu içerir.
// RouteConfig.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplicationDemo { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute('{resource}.axd/{*pathInfo}'); routes.MapRoute( name: 'Default', url: '{controller}/{action}/{id}', defaults: new { controller = 'Home', action = 'Index', id = UrlParameter.Optional } ); } } }
Bu kurulum dosyasına göre Ev denetleyicisinin Dizin eylemi varsayılan olarak değerlendirilecektir. Uygulama ilk çalıştırıldığında aşağıdaki çıktıyı üretir.
Adres çubuğuna bakarsak yalnızca şunları içerir: yerel ana bilgisayar:52174 . Denetleyici yok ve MVC yönlendiricisi denetleyiciyi RouteConfig.cs.
Adres çubuğuna denetleyici ve eylem adlarını açıkça girersek aynı eyleme yönlendirecektir. localhost:52174/Ana Sayfa/Dizin tarayıcıya aynı çıktıyı üretecektir.
Şimdi yeni bir denetleyici oluşturalım ve onu rota dosyasına göre yapılandıralım. Sağ tıklayın Denetleyici klasöre gidin ve ardından denetleyici ekle'yi seçin. Bir pencere açılacaktır. ekran görüntüsünde yaptığımız gibi boş bir denetleyici seçin.
Bu denetleyicinin bazı kaynak kodları var, bunu aşağıdaki kodla geçersiz kılın.
// StudentsController.cs
using System.Web.Mvc; namespace MvcApplicationDemo.Controllers { public class StudentsController : Controller { public ContentResult Index() { return Content('This is default student page'); } } }
Bu denetleyiciyi rota dosyasında yapılandırmak için bazı değişiklikler yaptık. RouteConfig.cs dosya. Kod aşağıda verilmiştir.
// RouteConfig.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplicationDemo { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute('{resource}.axd/{*pathInfo}'); routes.MapRoute( name: 'Students', url: '{controller}/{action}/{id}', defaults: new { controller = 'Students', action = 'Index', id = UrlParameter.Optional } ); } } }
Bu uygulama aynı çıktıyı üretir yerel ana bilgisayar:52174 Ve localhost:52174/Öğrenciler/Dizin
Çünkü MVC çerçevesinin rota modülü, tarayıcı URL'sini projenin RouteConfig dosyasına eşler.
Çıktı:
MySQL'de regexp_like
Denetleyici ve eylem adlarını açıkça girmiş olsak bile bu yukarıdakiyle aynıdır.