programing

ASP.NET MVC - QueryString 값 가져오기

bestprogram 2023. 7. 1. 09:04

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"]})';

명부URL 값은/Sector/List?name=value'

그리고 언제queryString비어 있습니다

listURL 값은/Sector/List

언제든지 사용할 수 있습니다.Request.QueryStringMVC가 웹 양식을 처리하고 매개 변수로 전달하도록 할 수도 있습니다.이 방법은 입력 데이터 유형의 유효성을 자동으로 검사하기 때문에 제안된 방법입니다.

UpdateModel/TryUpdateModel과 마찬가지로 컨트롤러의 ValueProvider 속성을 사용하여 필요한 경로, 쿼리 및 양식 매개 변수를 추출하는 것이 좋습니다.이렇게 하면 메소드 서명이 잠재적으로 매우 커지거나 자주 변경되는 것을 방지할 수 있습니다.또한 장치 테스트 중에 컨트롤러에 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으로 반환하여 한 번의 호출로 모두에 쉽게 액세스할 수 있다면 더욱 의미가 있을 것입니다.가능하다면 여기 있는 누군가가 그것을 보여줄 수 있을까요?

컨트롤러가 쿼리 문자열을 캡처하는 방법은 이해할 수 없지만, 이는 컨트롤러가 즉시 사용자에게 알려주는 것보다 쿼리 문자열을 캡처할 수 있는 유연성이 더 높다는 것을 의미합니다.그러니 독약을 고르세요...둘 다 잘 작동합니다.

@상황.부탁한다.쿼리["사용자 ID"]

.NET 6(및 기타 넷코어)에서 올바른 방법입니다.

var Param = 요청입니다.쿼리["IndexString"];

문자열이어야 하는 경우

문자열 매개 변수 = 요청.쿼리["IndexString"].문자열로();

언급URL : https://stackoverflow.com/questions/627838/asp-net-mvc-getting-querystring-values