ASP.NET MVC: Html.Actionlink () создает пустую ссылку

Хорошо, у меня возникли некоторые проблемы с actionlink htmlhelper.

У меня сложная маршрутизация:

        routes.MapRoute("Groep_Dashboard_Route", // Route name
                        "{EventName}/{GroupID}/Dashboard", // url with Paramters
                        new {controller = "Group", action="Dashboard"});

        routes.MapRoute("Event_Groep_Route", // Route name
                        "{EventName}/{GroupID}/{controller}/{action}/{id}",
                        new {controller = "Home", action = "Index"});

Моя проблема заключается в создании ссылок действий, соответствующих этим шаблонам. Параметр eventname действительно нужен только для удобной ссылки. он ничего не делает.

Теперь, когда я, например, пытаюсь создать ссылку. который показывает панель инструментов определенной группы. Нравиться:

  mysite.com/testevent/20/Dashboard

Я воспользуюсь следующей ссылкой на действие:

<%: Html.ActionLink("Show dashboard", "Group", "Dashboard",  new { EventName_Url = "test", GroepID = item.groepID}, null)%>

Что дает мой фактический результат в html:

 <a href="">Show Dashboard</a>

У меня должно быть что-то вроде:

 <a href="test/20/Dashboard">Show Dashboard</a>

Пожалуйста, подождите, я все еще новичок в ASP MVC. Может кто-нибудь сказать мне, что я делаю не так?

Помощь будет признательна!


person Community    schedule 06.05.2010    source источник


Ответы (2)


Здесь есть ряд ошибок, помимо того, что уже было указано - у вас также есть строки Controller и Action неправильно.

Эта подпись метода, которая вам нужна, выглядит так:

HtmlHelper.ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)

Итак, ваш должен быть:

<%: Html.ActionLink("Show dashboard", "Dashboard", "Group", new { EventName = "test", GroupID = item.groupID}, null) %>

HTHs,
Чарльз

person Charlino    schedule 06.05.2010
comment
Да!. Неправильно написано, потому что я хотел немного перевести код на английский и сделать его более понятным. Проблема действительно заключалась в том, что я перевернул контроллер и действие. Глупая ошибка. Извините, что беспокою вас всех таким тупым вопросом Tnx alot - person ; 06.05.2010
comment
Приятель, не будь так строги к себе ... у всех нас есть своя доля пебкацких моментов! Продолжайте задавать вопросы, какими бы простыми или сложными они ни казались :-) Ps. pebkac = [p] проблема [e] существует [b] между [k] доской [a] и [c] волосами - person Charlino; 06.05.2010

Я думаю, проблема в том, что он не находит маршрут, соответствующий этим параметрам. Вы неправильно написали GroupID и ввели несуществующий параметр маршрута («EventName_Url») в маршруте, который вы пытаетесь сопоставить. Ссылка на действие, вероятно, должна выглядеть примерно так:

<%: Html.ActionLink("Show dashboard", "Group", "Dashboard",  new { EventName = "test", GroupID = item.groepID}, null)%
person Mattias Jakobsson    schedule 06.05.2010