0
을 포함 이것은 시나리오입니다. 아시다시피 두 개의 지속적인 인수는 ASP.NET MVC 경로에서 지원되지 않습니다. 그리고 저는 "{param1}/{param2}"와 같은 경로를 분석 할 수는 있지만 원하는 것은 아닙니다.ASP.NET 경로가 여러 인수를
그럼 내 질문은 MVC 경로에서 두 개의 연속 인수에 대한 시나리오를 구현하는 방법입니까?
을 포함 이것은 시나리오입니다. 아시다시피 두 개의 지속적인 인수는 ASP.NET MVC 경로에서 지원되지 않습니다. 그리고 저는 "{param1}/{param2}"와 같은 경로를 분석 할 수는 있지만 원하는 것은 아닙니다.ASP.NET 경로가 여러 인수를
그럼 내 질문은 MVC 경로에서 두 개의 연속 인수에 대한 시나리오를 구현하는 방법입니까?
당신은 MvcRouteHandler
public class MyRouteHandler : MvcRouteHandler
{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
var param = requestContext.RouteData.Values["param"].ToString();
var sbString = new StringBuilder();
var sbInt = new StringBuilder();
foreach (var ch in param.ToCharArray())
{
if (char.IsDigit(ch))
sbInt.Append(ch);
else
sbString.Append(ch);
}
requestContext.RouteData.Values["param1"] = sbString.ToString();
requestContext.RouteData.Values["param2"] = sbInt.ToString();
return base.GetHttpHandler(requestContext);
}
}
Global.asax에 경로에 추가하고이 때 사용하는 사용자 정의 RouteHandler를 지정하는 사용자 정의 작성해야합니다.
routes.MapRoute(
"Default",
"Test/{param}",
new { controller = "Default", action = "Index"}
).RouteHandler = new MyRouteHandler();
조치 매개 변수로 param1 및 param2를 사용하십시오.
public string Index(string param1, int param2)
{
return param1 + "|" + param2;
}
희망이 있습니다.
대단히 감사합니다. leskovar. 귀하의 솔루션이 나를 위해 작동;) –