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

Другие вопросы по тегам