2009-04-09 5 views
0

내가 이렇게 내 컨트롤러에 있었던 파라미터로 URL에 패스를 시도하고있다 :이 시도 할 때마다쿼리 문자열의 URL을 컨트롤러에 전달하려면 어떻게해야합니까?

//Passed in via url like this: 
//http://www.mydomain.com/Puzzle/ContinuePuzzle/{insert url here} 
public ActionResult ContinuePuzzle(string url) 
{ 
    return View("PuzzleWrapper", 
       (object)_PuzzleService.ContinuePuzzle(url); 
} 

은 내가 HTTP 400 잘못된 요청 오류가 발생합니다. UrlEncoding 시도했지만 여전히 그것을 좋아하지 않습니다. 어떤 제안?

+0

괄호 안에 넣거나 너무 귀찮습니까? – Brettski

답변

3

URL에 두 개의 스키마 선언이있는 것으로 의심되는 경우 기본 경로 처리기가 400 응답을 발생시킵니다.

해결 방법으로, URL없이 구성표 (예 : http : //) 만 보내면됩니다. 나는 아무 문제없이이 시나리오를 테스트 : 당신은 계획을 가지고있는 경우 Charlino 제안처럼, 다음 쿼리 문자열 매개 변수를 사용

routes.MapRoute("Puzzle", "Puzzle/ContinuePuzzle/{*url}", new {controller = "Puzzle", action = "ContinuePuzzle", url = ""}); 

:

http://www.mydomain.com/Puzzle/ContinuePuzzle/www.domain.com/nextpuzzle

이 경로를 사용하여.

0

괄호 안에 넣으면 어떨까요?

URL에서 http : // start를 다시 시작하면 잘못된 주소입니다.

http://www.mydomain.com/Puzzle/ContinuePuzzle/(http://mypuzzlingdomain.com/?a4) 

또는 중괄호도 사용할 수 있습니다.

관련 문제