2012-01-09 4 views
0

내가 URL에서 요청 매개 변수를 사용하는 방법은 URL은 위의 예에서 http://www.domain.ext/default.aspx?id=123&name=abc요청 URL 매개 변수

을 - 이것도 경우

우리가 string myid = Request["id"];과 같은 페이지 default.aspx에서 두 개의 매개 변수, 즉 idname을 요청할 수있다 string myname = Request["name"];

그러나 Facebook 프로필의 URL에서 이러한 종류의 것을 보여줍니다. 이 모든 페이지 이름 습관과 구문을 사용하여 이름을 정의

http://www.facebook.com/john.deo 또는

http://www.facebook.com/madcoder. C#에서 URL에서 매개 변수 (john.deo 또는 madcoder)를 요청하는 방법?

+0

URL은 매개 변수가 아닙니다. URL의 일부입니다. 나는 너 자신을 URL에서 파싱해야한다고 생각한다. 그래프 API에 URL 부분을 제출하고 실제로 필요한 경우 사용자 ID를 다시 가져올 수 있습니다. – Rup

답변

3

htaccess 파일에 규칙을 추가하여이 작업을 수행 할 수 있습니다.

RewriteRule ^([A-Za-z0-9_-]*)/$ index.php?name=$1 

이 규칙은 의미 할 것이다 당신은 당신이 '이름'매개 변수를 요청하여 값 '존'을 얻을 수 http://www.mydomain.co.uk/john 브라우저에 입력합니다.

+0

좋아요! 하지만 htaccess가 아파치 서버를위한 것 같아요? 저는 IIS에서 일하고 있습니다. –

+0

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx – psych

+0

굉장! 귀하의 정보 주셔서 감사합니다 :) –

0

이들은 URL 매개 변수가 아니며 리소스를 식별하는 데 사용됩니다.
정규식을 사용하면 주어진 URL에서 "john.deo"를 얻는 것이 객관적입니다.

+0

정규식을 사용하여 모든 샘플 코드를 제공 해주실 수 있습니까? –

0

모두 솔루션의 복잡도에 따라 다릅니다. 그러나 이것을 수행하는 쉬운 방법 중 하나는 페이지 라우팅을 사용하는 것입니다. "{이름}"

RouteTable.Routes.MapPageRoute("Route name", "requestformat", "physicalfile", checkPhysicalUrlAccess, routeValueDefaults, routeConstraints); 

그런 다음 귀하의 요청 형식과 같은 매개 변수를 지정하고 'routeValueDefaults' 사전에 이름 매개 변수를 기본과를 넣어 :

이처럼 Global.asax -> Application_Start에 경로를 등록 할 수 있습니다 'routeContstrains '사전에 그것에 대한 제약. 제약 조건은 정규식으로 지정할 수 있으므로 이름을 모두 문자로만 사용하려면 "\ w +"와 같은 것을 사용할 수 있습니다.

그런 다음 매개 변수는 실제 페이지의 Page.RouteData["name"] 컬렉션에 있습니다.