당신은 어떻게 사용하여 쿼리 문자열과 ASP.NET 라우팅?
-
03-07-2019 - |
문제
새로운 ASP.NET 라우팅은 간단한 스타일의 경로를 URL 에만 사용할 경우 같은 url 을:
http://example.com/items/search.xhtml?term=Text+to+find&page=2
당신은 당신을 사용하여 모든 매개 변수는 유효성 검사?
해결책
경로에 나열되지 않은 모든 뷰 데이터 항목은 쿼리 스트링에 자동으로 매핑되므로 "Items/Search.xhtml"을 맵핑하면 작업에 표시됩니다.
Search(string term, int page)
그런 다음 찾고있는 결과를 얻어야합니다.
다른 팁
QueryString 매개 변수를 경로와 일치시킬 수 있습니다.
{*contenturl}
나머지 URL을 해당 변수로 채 웁니다.
또한 인코딩 된 URL을 경로 매개 변수로 경로로 전달하는 데 어려움이있었습니다.
URL에서 URL 인코딩 된 숯을 사용할 수는 없지만 쿼리 문자열로 사용할 수 있습니다.
따라서 쿼리 문자열 요소가있는 경로가 필요했습니다.
경로가 있다고 말합니다.
MapPageRoute("myroute", "myroute/{x}", "~/routehander.aspx")
그러나 나는 다음과 같은 형태로 그것을 원한다.
http://mywebsite.com/myroute/{x}?url=myurl
우리는 할 수있어:
Dim x as integer = 12
Dim rvd As New Routing.RouteValueDictionary
rvd.Add("x", x)
rvd.Add("url", Server.UrlEncode("/default.aspx"))
HttpContext.Current.ApplicationInstance.Response.RedirectToRoutePermanent("myroute", rvd)
이것은 우리를 다음 URL로 리디렉션합니다.
http://mywebsite.com/myroute/12?url=%252fdefault.aspx
여전히 사용할 수 있습 Request.QueryString["some_value"];
제휴하지 않습니다 StackOverflow