Как преобразовать QueryString в модель с Mvc4 не через контроллер

Я хотел бы подражать процессу привязки контроллера и привязать строку запроса к модели, но не через контроллер.

У меня есть доступ к Request.QueryString из типа NameValueCollection. Как я могу заставить его привязываться так же, как mvc4, связывающий модели через контроллер.

Например, у меня есть этот класс:

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

и NameValueCollection(Request.QueryString), созданный объектом Request из URL-адреса, похожего на ?Name=James&Lastname=Bow.

Какие-либо предложения?


person Dvir    schedule 09.12.2013    source источник


Ответы (1)


Почему бы не создать ActionFilter, а затем переопределить метод OnActionExecuted. ActionExecutedContext будет иметь доступ к Request.QueryString. Затем вы можете заполнить filterContext.Controller.ViewData.Model из строки запроса.

person Spock    schedule 09.12.2013
comment
Потому что это не действие в контроллере. Мне это нужно из контекста контроллера, который получает строку запроса URL-адреса и преобразует ее в модель. Это должен быть способ сделать это, как это делает mvc. - person Dvir; 09.12.2013
comment
Вы сказали, что это не действие в контроллере, тогда как вы выполняете маршрут URL (должен содержать действие) со строкой запроса? Или я что-то упускаю? - person Spock; 10.12.2013
comment
Предположим, что контроллер получает только параметр id. И не разрешено получать модель в качестве параметра. Как я могу связать его в любом случае из строки запроса URL. - person Dvir; 12.12.2013