ASP.NET MVC: Html.Actionlink () генерирует пустую ссылку - PullRequest
4 голосов
/ 06 мая 2010

Хорошо, у меня возникли некоторые проблемы с 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. Может кто-нибудь сказать мне, что я делаю не так?

Помощь будет оценена!

Ответы [ 2 ]

3 голосов
/ 06 мая 2010

Здесь есть ряд неправильных вещей, помимо того, что уже было указано - у вас также есть строки 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
Charles

3 голосов
/ 06 мая 2010

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

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