Url.RequestContext.RouteData.Values не работает?
Я знаю, что есть метод, который можно использовать для получения текущей базы параметров URL на карте маршрутов,
Url.RequestContext.RouteData.Values["id"]
Но я обнаружил, что при запуске этого метода возвращается System.NullReferenceException, поэтому я зарегистрировал весь объект, полученный в Url.RequestContext.RouteData.Values, это включает два экземпляра, который является [Key:Controller, Value: Blog]
а также [key:action, Value:BlogCommit]
Затем я немедленно проверяю свой конфигурационный файл карты маршрутов и думаю, что все в порядке с
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Что такое конфигурация по умолчанию, что не так с моим кодом?
С URL это выглядит так:
http://www.example.com:1925/Blog/BlogPost/1
В чем причина? Или есть ли способ узнать это?
1 ответ
Здравствуйте, надеюсь, это поможет:
string getParameterIdValue = (string)this.RouteData.Values["id"];
Другие опции:
string CurrentController = (string)this.RouteData.Values["controller"];
string CurrentAction = (string)this.RouteData.Values["action"];
Получил это здесь: https://forums.asp.net/t/1386372.aspx?Get+Route+Parameter+Value+in+Controller