Базовый класс не может получить доступ к аргументам, переданным действию контроллера, но он может получить данные из RouteData
. Поэтому, если вы хотите, чтобы SectionId был частью вашего маршрута, а не аргумент строки запроса, вы можете сделать:
// Global.asax
routes.MapRoute(
"WithSection",
"{sectionId}/{controller}/{action}/{id}",
new { section = String.Emtpy, action = "index", id = String.Empty }
);
// base controller class
public void SectionID()
{
int SectionID = Convert.ToInt32(RouteData["SectionID"]);
ViewData["SectionID"] = SectionID;
}
Если вы передаете SectionId в качестве параметра строки запроса, то отправленный вами код должен работать ... не так ли?