2014-11-04 3 views
-2

내 인생에서 요청 개체를 만들고 ASP.NET MVC에서 매개 변수 가져 오기 및 가져 오기를 수행하는 방법을 찾을 수 없습니다.ASP.NET MVC에서 요청 매개 변수를 얻는 방법

액션 생성자에서 정의 할 수 없으며 요청의 정보를 직접 가져 오려고합니다.

+0

EF는 데이터베이스를 쿼리하기위한 도구입니다. 웹 요청의 쿼리 문자열 값에 액세스하는 이유는 무엇입니까? 그것들은 직각 개념입니다. – Servy

+0

죄송합니다. 저는 Microsoft MVC를 의미합니다. 긴 하루였습니다. – mmorales

+0

요청 매개 변수에 직접 액세스하려는 사실은 디자인에 대해 몇 가지 벨을 울려 야합니다. MVC 패러다임을 사용할 때의 결과 중 하나는 요청 세부 사항에 대한 구현 세부 사항에 대해 걱정할 필요가 없다는 것입니다. –

답변

3

당신은 할 수 있습니다 :

string strParam = HttpContext.Current.Request["someParameter"]; 
+0

덕분에, 그 변화가 리눅스에서 마이크로 소프트로 옮겨 갔고, 나는 내가 1000 가지의 새로운 이름 인 하하 중 일부를 뒤죽박죽이라고 확신하고있다. – mmorales

+0

다른 점에도 불구하고 경로의 요청 매개 변수를 컨트롤러 메소드에 매핑해야합니다. 그렇게함으로써 MVC는 포스트 백/쿼리 문자열 매개 변수를 컨트롤러 메소드에 자동으로 보냅니다. –

+0

나는 동의한다, 그러나 나는 지금 막 언어를 배우고있다, 그것을 허용하는 모든 다른 방법을 통해 가고 adn. 사이트의 json API를 쉽게 설정할 수 있었지만 요청이 전달되고 입력되는 방식이 궁금했습니다. – mmorales

1

을 당신은 또한 경로 구성에서이 작업을 수행 할 수있는 대안으로.

당신은 당신의 프로젝트 "의 Global.asax/global.cs"글로벌 클래스 파일이 코드는 예를 들어, 컨트롤러 경로를 구성 할 수 있어야 거기한다 ....

private void RegisterRoutes(RouteCollection routes) 
    { 
     routes.MapRoute("ImageGen_GetImage", "ImageGen/{action}", new { controller = "ImageGen", action = "GetImage", id = UrlParameter.Optional }); 
    } 

그런 다음 컨트롤러 메소드가 된 GetImage에 매개 변수의 예제 시나리오 없음에서

 [HttpGet()] 
    public void GetImage(string localImageUrl, int maxWidth, int maxHeight, string cache) 
    { 
    } 

는 경로의 URL "ImageGen/{동작}"에, 다음과 같이 보일 수 있습니다.

마찬가지로 사용자가 http://www.somesite.com/imagegen/getimage을 요청할 때 MVC는 ImageGen이 ImageGen 컨트롤러에 매핑되어 있음을 알고 있습니다. 따라서 {action}이 "GetImage"로 명시되고 있음을 알 수 있습니다 (URL의 imagegen 뒤에오고 그 순서로 매핑의 URL과 일치하기 때문에). 이제 매핑 매개 변수의 URL에 다른 매개 변수가 설정되어 있지 않기 때문에 MVC는 GetImage 메서드의 매개 변수가 쿼리 문자열에서 오는 것으로 가정합니다. 당신이 그런 된 GetImage이 localImageUrl,의 maxWidth,의 maxHeight 호출됩니다 http://www.somesite.com/imagegen/GetImage?localImageUrl=/images/myImage.png&maxWidth=1024&maxHeight=768&cache=1

로 이동했고, 경우

그래서 캐시 값은 자동적으로, 쿼리 문자열에서 가져온.

관련 문제