컨트롤러 매개 변수를 확장하여 선택적 매개 변수를 허용하려고했습니다. 즉, 기존 코드가 계속 작동하기를 원하지만 추가 정보를 전달하는 새로운 기능을 추가해야했습니다. 내 routeprovider, 컨트롤러를 수정하고 테스트했습니다. 선택적 매개 변수 및 라우팅 모두 잘 작동했습니다. 그래서 회귀 테스트를 수행하여 기존 코드가 여전히 작동 하는지를 추측했습니다. 그렇지 않았습니다.선택적 매개 변수가있는 잘못된 라우팅
그래서 내가 뭘 잘못하고 있니? 기존 컨트롤러 동작을 사용할 수 있다고 생각했는데 선택적 매개 변수를 사용하거나 사용하지 않고 사용할 수 있습니까?
컨트롤러 코드를 게시하지 않았습니다. 작동하지 않을 것으로 생각됩니다. 나는 첫 번째 라인에서 중단 점을 설정하고 결코 거기에 도착하지 않으므로 내 routeprovider에 오류가있는 것 같습니다. 다른 코드가 필요한 경우 기꺼이 추가 할 것입니다.
이 작동 : 그래서 위의 두 URL 샘플을 부탁
routes.MapLocalizedRoute("SignUp", "signup/{CampaignId}",
new {controller="Customer", action="NewSignup", CampaignId=UrlParameter.Optional},
new { CampaignId = @"\d+" },
new[] { "Domain.PROJECT.Controllers" });
domain.com/signup : domain.com/signup/12345
이는하지만 잘 작동하는 데 사용되지 않습니다 일하다. 나는 물론 campaignid없이 다른 경로를 추가 할 수 있으며 같은 컨트롤러 액션을 가리킨다.하지만 다시 ... 나는 생각했다 ... 그것은 선거 운동을 선택적으로 만드는 아이디어였다.
새로운 {CampaignId = @ "\ d +"}, 개체 제약 조건이 선택적 매개 변수를 무시하며 기본적으로 캠페인 ID를 강제로 적용합니까?
고맙습니다.
'새 {CAMPAIGNID = @ "\ D *"}'을해야한다. – shakib
@shakib 그것은 아무 것도 깨지 않았지만 경로가 매개 변수와 함께 또는 매개 변수없이 작동하도록 허용하지 않았습니다. – GPGVM
어쩌면 내가 오해했을 수도 있지만'new {CampaignId = @ "\ d *"}'제약 조건을 사용하는'MvcRouteHandler' 같은 기본 라우트 핸들러는'site.com/signup'과'site.com/signup /'과' site.com/signup/123' – shakib