13
Alan klasörler gibi görünür:Mvc alan yönlendirmesi?
Controller
UserController
GetAllUsers
alan rota kaydı
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new { controller = "Branch|AdminHome|User" }
);
}
proje rota kaydı
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 },
namespaces: new string[] { "MyApp.Areas.Admin.Controllers" });
}
:
Areas
Admin
Controllers
UserController
BranchController
AdminHomeController
Proje dizinleri gibi bakmak
Böyle yoldayken: http://mydomain.com/User/GetAllUsers
Kaynak bulunamadı hatası (404) alıyorum. Alanına UserController ekledikten sonra bu hatayı alıyorum.
Bu hatayı nasıl düzeltebilirim? Eğer kontrolör ad alanlarını mahvettigini
Alanlara karşılık gelen ad alanlarıyla karıştırıldım. Bu örnekte, MyApp.Areas.Admin.Controllers ad alanı klasör hiyerarşisiyle eşleşir, ancak ad alanı tanımı keyfi haktır? Programcı, istedikleri kontrolör sınıfına herhangi bir isim alanı atayabilir - diye düşündüm. Ya da klasör hiyerarşisine uyması için ad alanı gerektiren bazı asp.net mvc sözleşmesi var mı? – Howiecamp
@Howiecamp Visual Studio'nun varsayılan davranışı, ad alanını klasör hiyerarşisiyle eşleştirmektir; bu, genellikle tüm projelerde göreceğiniz şeydir (yalnızca MVC projeleri değil). –