가변 수의 MVC 경로를 어떻게 처리합니까?
-
03-07-2019 - |
문제
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)
{
...
}
제휴하지 않습니다 StackOverflow