Это хорошая практика для заполнения моделей / переменных модели представления в
конструктор модели представления?
Это зависит.
Но на примере, который вы показали, ответ будет нет . У вас есть связующее для моделей, которое должно это делать:
public class ProgramViewModel
{
public IEnumerable<Programme> ProgramList { get; set; }
public string QuerystringAgeID { get; set; }
}
и затем:
public ActionResult Foo(ProgramViewModel model)
{
// model.QuerystringAgeID will be automatically populated
// with the value of the QuerystringAgeID
// thanks to the default model binder
...
}
В дополнение к этому вы должны избегать использования HttpContext.Current
в приложении ASP.NET MVC. Делает ваш код привязанным к контексту ASP.NET, что делает невозможным повторное использование и модульное тестирование изолированно. ASP.NET MVC предоставляет вам абстракции для этого: HttpContextBase, ...