문제

ASP.NET MVC 에서이 흥미로운 비트에 주목합니다.

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

{*pathinfo}를 경로에 매핑하고 싶습니다.

같은 것 :

routes.MapRoute(
  "area/{*pathInfo}",
   "{controller}/{action}/{id}",parameters
   new { controller = "Area", action = "Index", id = ??? } 
);

그러나 mydomain.com/area/foo/bar/rab/oof에서 변수 "foo/bar/rab/oof"를 어떻게 전달합니까? 전체 비트를 문자열로 전달하거나 컬렉션으로 전달하는 것은 나에게 괜찮을 것입니다.

감사!

도움이 되었습니까?

해결책

어떤 MVC 버전을 사용하고 있습니까? MCV 베타에서 기억하는 것처럼 경로 이름은 Maproute ()의 첫 번째 매개 변수 여야합니다. 어쨌든, 길을 캡처한다는 목표를 감안할 때, 나는 다음과 같은 일을 할 것이다.

routes.MapRoute("AreaRoute", "Area/{*values}", new {controller = "Area", action = "Index"}       );

그리고 영역 컨트롤러에서 :

// "value" argument is the string after Area/, i.e. "foo/bar/rab/oof" in your example
public string Index(string values)  
{  
  ...
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top