ASP.NET MVC-QueryString 값 가져 오기
ASP.NET MVC에서 ASP.NET WebForms에서와 같은 방식으로 QueryString 매개 변수를 선택해야합니까? 아니면 [AcceptVerbs(HttpVerbs.Get)]
선언이 어떻게 든 사용됩니까?
쿼리 문자열 매개 변수는 작업에 대한 인수를 사용하여 간단히 받아 들일 수 있습니다.
public ActionResult Foo(string someValue, int someOtherValue) {...}
다음과 같은 쿼리를 수락합니다. .../someroute?someValue=abc&someOtherValue=123
그 외에 더 많은 제어를 위해 요청을 직접 볼 수 있습니다.
당신이 찾고있는 것은
Request.QueryString["QueryStringName"]
추가하여보기에서 액세스 할 수 있습니다. @
이제 내 예를 살펴보면 QueryString으로 Url을 생성했습니다.
var listURL = '@Url.RouteUrl(new { controller = "Sector", action = "List" , name = Request.QueryString["name"]})';
listURL 값은 /Sector/List?name=value'
그리고 queryString
비어 있을 때
listURL 값은 /Sector/List
Request.QueryString
웹 양식과 같은 컬렉션을 항상 사용할 수 있지만 MVC에서이를 처리하고 매개 변수로 전달할 수도 있습니다. 이것은 더 쉽고 입력 데이터 유형의 유효성을 자동으로 검증하므로 제안 된 방법입니다.
컨트롤러의 ValueProvider 속성을 사용하는 것이 좋습니다. UpdateModel / TryUpdateModel이 필요한 경로, 쿼리 및 양식 매개 변수를 추출하는 방식과 비슷합니다. 이렇게하면 메서드 서명이 잠재적으로 매우 커지고 자주 변경되는 것을 방지 할 수 있습니다. 또한 단위 테스트 중에 ValueProvider를 컨트롤러에 제공 할 수 있으므로 테스트하기가 조금 더 쉽습니다.
실제로 두 가지 방법으로 MVC에서 쿼리 문자열을 캡처 할 수 있습니다 .....
public ActionResult CrazyMVC(string knownQuerystring)
{
// This is the known query string captured by the Controller Action Method parameter above
string myKnownQuerystring = knownQuerystring;
// This is what I call the mysterious "unknown" query string
// It is not known because the Controller isn't capturing it
string myUnknownQuerystring = Request.QueryString["unknownQuerystring"];
return Content(myKnownQuerystring + " - " + myUnknownQuerystring);
}
이것은 두 쿼리 문자열을 모두 캡처합니다 ... 예 :
/CrazyMVC?knownQuerystring=123&unknownQuerystring=456
Output: 123 - 456
왜 그렇게 디자인했는지 묻지 마세요. 개별 쿼리 문자열에 대한 전체 컨트롤러 작업 시스템을 버리고 URL에 대한 모든 문자열 / 인코딩 된 파일 개체의 캡처 된 동적 목록을 url-form-encoding으로 반환하여 한 번의 호출로 모두 쉽게 액세스 할 수 있다면 더 합리적 일 것입니다. . 아마도 여기 누군가가 가능하다면 그것을 증명할 수 있습니까?
컨트롤러가 쿼리 문자열을 캡처하는 방법은 이해가 안되지만, 이는 즉시 가르치는 것보다 쿼리 문자열을 캡처하는 데 더 많은 유연성이 있음을 의미합니다. 그러니 당신의 독을 선택하십시오.
참고 URL : https://stackoverflow.com/questions/627838/asp-net-mvc-getting-querystring-values
'code' 카테고리의 다른 글
javascript console.log 캡처? (0) | 2020.11.10 |
---|---|
Swift-코너 반경 및 그림자 문제 (0) | 2020.11.10 |
JavaScript에서 변수가 날짜인지 확인하는 방법이 있습니까? (0) | 2020.11.10 |
jQuery : 창 너비를 즉시 감지하는 방법? (0) | 2020.11.10 |
최신 JRE 버전이 이전 JDK 버전으로 컴파일 된 Java 프로그램을 실행할 수 있습니까? (0) | 2020.11.10 |