2
내가 좀 asp.net의 MVC와 함께 1 2 개 경로를 병합하려면 여기를 시도하고
이 루트는 다음과 같습니다
및
는 현재 Global.asax.cs이로 설정되어 있습니다 : 그것은 작동하지 않습니다
routes.MapRoute(
"EventWithName",
"e/{id}{name}",
new { controller = "Event", action = "SingleEvent", id = "" },
new { id = @"([\d]+)", name = @"^,(.*)" }
);
:
routes.MapRoute(
"EventWithName",
"e/{id},{name}",
new { controller = "Event", action = "SingleEvent", id = "" },
new { id = @"([\d]+)" }
);
routes.MapRoute(
"SingleEvent",
"e/{id}",
new { controller = "Event", action = "SingleEvent", id = "" },
new { id = @"([\d]+)" }
);
나는이 같은 1 차 경로를 수정하여 그것을 처리하려 2 개의 매개 변수를 슬래시 또는 적어도 하나의 문자로 구분해야합니다.
가장 좋은 생각은 id 부분 만 필요하기 때문에 정규식을 사용하는 것입니다. 이름은 설명 적이며 SEO 목적으로 사용됩니다. 기본적으로 Regex 일종의 종류의 ([\d]+),(.*)
및 id = "$1"
또는 그런 식으로 사용할 수 있습니까? 하지 않은, http://www.example.com/Events/SingleEvent/1/name-of-the-stuff :
나는이처럼 내 URL을 포맷 할 필요가 있습니다 정확히 내가 찾는 것. – Erick
반드시 그렇지는 않습니다. 이 대답의 요점은 {* keywords} 부분입니다. 쉼표로 경로에 '*'를 추가하십시오. ", foo"부분이 선택적인 경우 두 경로를 사용하고 첫 번째 경로는 두 부분으로, 두 번째 경로는 {id}로 시도하십시오. – Brannon
Brannon이 맞습니다. 나는'/ 1/what-is-new' 형식이'/ 1, what-is-new'보다 낫다고 생각합니다. StackOverflow qustion url에서 볼 수 있듯이. 어쨌든 동일한 세그먼트에서 두 개의 매개 변수를 사용할 수 없거나 두 매개 변수 사이에 리터럴 텍스트를 사용할 수 없습니다. –