0
이 코드를 컴파일하는 예제를 볼 수 있습니까?ASP.NET MVC 경로
public IEnumerable<RouteBase> Routes
{
get
{
return new List<Route>()
{
new Route(...)
}
}
}
RouteCollection.MapRoute()
이없는 경우 어떻게 하시겠습니까?
저는 Global.asax.cs가 아닌 맵핑 경로를 담당 할 관리자를 지정하려고합니다. public IEnumerable<RouteBase> Routes
은 내 컨트롤러의 멤버입니다. 컨트롤러가 라우트를 담당하는 경우 routes.MapRoute()
에 하드 코드 된 별도의 URL (Global.asax.cs
)을 사용하여 라우트를 분리하는 것은 좋지 않습니다.
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
RouteTable.Routes.Include(new RootController());
}
}
public static class RouteCollectionExtension
{
public static RouteCollection Include(this RouteCollection routes, IRoutedController controller)
{
foreach (var route in controller.Routes)
{
routes.Add(route);
}
return routes;
}
}
그리고 : 하비 씨에 대한 응답으로
는public class RootController : Controller, IRoutedController
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public IEnumerable<RouteBase> Routes
{
get
{
return new List<Route>()
{
new Route("{controller}/{action}/{id}", ...?!?)
};
}
}
}
닭고기와 계란에 문제가 있습니까? 컨트롤러 메소드는 실행되지 않는 경우 라우트를 설정하는 방법 (라우팅 엔진이 컨트롤러 메소드를 실행하기 때문에 적어도 하나의 기존 라우트가 필요합니다)? 아마도 –
. :) # # – MVCDummy09
편집 내용이 나에게 전달되었는지 여부를 모릅니다. 컨트롤러는 라우트를 담당하지 않으며 라우팅 엔진은 라우트입니다. 나는 당신의 강점에 감탄하지만, 컨트롤러 메소드를 처음부터 어떻게 실행 시킬지 아직 설명하지 않았기 때문에 라우팅 엔진에 사전 정의 된 라우트가없고 실행할 방법이없는 경우 일부 라우트를 설정할 수 있습니다 컨트롤러 메소드. –