2012-05-05 3 views

답변

1

나는 이전의 대답이 모두 옳지 않다고 생각한다. 이 쿼리 문자열은 MVC에서 설정 한 기본 경로 (이 {controller}/{action}/{id}와 같은 URL과 일치하는 경우)가 맞습니다.

실제로 진행해야하는 작업은 경로가 엉망이며 쿼리가 기본 경로를 누르지 않았거나 변경 한 것입니다.

내가 할 수있는 것은 RouteDebugger를 얻는 것이다. (그냥 Nuget을 통해 얻을 수있다.) 그리고 쿼리 문자열이 어떤 경로를 통과하는지보십시오. 원하는 URL에 대한 경로를 설정할 수 있습니다 (친숙한 URL의 전체 지점). 경로를/ContinueGiving/{id}/{personId}로 지정하려면 경로를 추가하면됩니다. 경로의 시작이 같은 정의 뭔가를 추가하기에 :


routes.MapRoute(
    name: "ContinueDonation", 
    url: "ContinueGiving/{id}/{personId}", 
    defaults: new { controller = "Donation", action = "ContinueDonation" }, 
    constraints: new { id = @"\d+", personId = @"\d+" } 
); 

모든 매개 변수를 프레임 워크 등 게시 값, 쿼리 문자열, 하나에 일치하는 항목을 찾을 수 있다면 당신은 매핑 얻을 것이다 지정하지

전달 된 매개 변수가 숫자 인 경우 제약 조건은이 경로가 일치하는 경우에만 적용됩니다.

ID가있는 경로가 어떻게 든 일치하지 않았기 때문에 이전 답변이 효과가 있었지만 실제로는 문제가 아닙니다.

+0

. 그게 많은 도움이됩니다. – 1Canuck16

1

: HTTP로 전송 된 모든 매개 변수가 너무 "234"234는 문자열 그대로

var route = '/Donation/ContinueDonation/?id=' + id + '&personId =' + persId; 
BTW

var persId = parseInt(id2); 라인은 중복 정확히 같은.

+0

k 감사합니다 ... 필요하지 않습니다? 또는 personID 앞에 &? – 1Canuck16

+1

@redBarron. 예, 제가 잊었습니다, 지금까지 업데이트했습니다. – gdoron

+0

더 많은 매개 변수와도 함께 작동해야합니까? 내가 3을 원한다면? – 1Canuck16