2013-12-09 4 views
0

컨트롤러 바인딩 프로세스를 모방 한 다음 쿼리 문자열을 모델로 바인딩하지만 컨트롤러를 통해 이 아닌이 아닌 모델을 바인딩하고 싶습니다.컨트롤러를 통해 QueryString을 Mvc4 모델로 변환하는 방법

Request.QueryStringNameValueCollection에서 액세스 할 수 있습니다. 컨트롤러를 통해 모델을 바인딩하는 mvc4와 동일한 바인딩을 강제로 수행 할 수 있습니까?

예를 들어 나는이 클래스가 : ?Name=James&Lastname=Bow처럼되는 URL에서 Request 객체에 의해 생성

public class Example 
{ 
    public string Name {get;set;} 
    public string LastName {get;set;} 
} 

NameValueCollection(Request.QueryString).

제안 사항?

답변

0

ActionFilter를 만들고 OnActionExecuted 메서드를 재정의하는 것이 좋습니다. ActionExecutedContext는 Request.QueryString에 액세스 할 수 있습니다. 그런 다음 쿼리 문자열에서 filterContext.Controller.ViewData.Model을 채울 수 있습니다.

+0

컨트롤러의 동작이 아니기 때문에 URL을 쿼리하여 모델로 변환하는 컨트롤러 컨텍스트에서 필요합니다. mvc처럼 그렇게하는 방법이어야합니다. – Dvir

+0

"컨트롤러에서 동작이 아닙니다"라고 말한 다음 쿼리 문자열을 사용하여 URL 경로 (동작이 있어야 함)를 어떻게 실행합니까? 또는 나는 무엇인가 놓치고 있냐? – Spock

+0

id 매개 변수 만 가져 오는 컨트롤러라고 가정합니다. 그리고 모델을 매개 변수로 가져올 수 없습니다. URL querystring에서 어쨌든 바인딩 할 수 있습니다. – Dvir