Рендеринг ActionLink программно - PullRequest
0 голосов
/ 28 сентября 2010

У меня есть сценарий, в котором я хотел бы визуализировать ActionLink программно, эфир из контроллера или в идеале метод расширения.Это позволяет мне обернуть некоторую логику для отображения ссылки и удалить ее из своего представления.

Я могу создать ActionLink, используя проект MVC Futures из CodePlex.* Существует метод RenderControl, который принимает HtmlTextWriter, который я пытался использовать.Я не могу заставить это работать, и в сборке Microsoft.Web.Mvc (Futures) каждый раз выдается исключение нулевой ссылки.

Ответы [ 2 ]

3 голосов
/ 28 сентября 2010

Если вы находитесь в контроллере, вы можете использовать следующее:

string anchor = HtmlHelper.GenerateLink(
                    this.Request.RequestContext,
                    RouteTable.Routes,
                    "Link name",
                    "",
                    "MyActionName",
                    "MyControllerName",
                    null,
                    null);

Но я не совсем уверен, что именно вы хотите увидеть в конце.

1 голос
/ 28 сентября 2010

Лучшим способом было бы сохранить флаг в модели, установленный контроллером, показать ли ссылку или нет, и показать / скрыть ее таким образом.В противном случае вы можете создать собственный вспомогательный метод с этой логикой;это по сути рендеринг тега и использование класса UrlHelper, метода Action, для генерации URL.Вы также можете использовать UrlHelper в контроллере и передавать ссылку также через модель, или в ViewData и т. Д.

HTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...