Как создать ссылку на действие из класса модели?

Возможный дубликат:
метод HTML.ActionLink

В моем приложении ASP.NET MVC 3 я хочу сгенерировать ссылку на действие из класса модели, соответствующую вызову Html.ActionLink в представлении. Причина в том, что мне нужно возвращать ссылки через JSON на DataTables, чтобы они отображались в ячейках таблицы. Как мне это сделать?

В частности, класс модели содержит свойство, которое возвращает строку, содержащую ссылки на мое приложение. DataTables получает JSON-представления экземпляров класса модели и использует это конкретное свойство для заполнения ячеек таблицы.


person aknuds1    schedule 10.05.2012    source источник
comment
Вы хотите создать MyModelClass.GetLinkMethod?   -  person Aleksej Vasinov    schedule 10.05.2012
comment
@AleksejVasinov Разве это не деталь реализации? Я хочу JSON-сериализовать свойство класса как строку, содержащую ссылки действий.   -  person aknuds1    schedule 10.05.2012


Ответы (1)


Я бы не хотел, чтобы модель генерировала свои собственные ссылки, но попросил бы контроллер создавать ссылки и устанавливать свойство с результирующими значениями. В любом случае вы можете создавать и использовать UrlHelper в контроллере следующим образом:

var url = new UrlHelper(ControllerContext.RequestContext);
url.Action(...);

Если у вас нет доступа к контексту контроллера (например, вы решили сделать это в своей модели отдельно от представления или контроллера), вы можете использовать

UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext);
person moribvndvs    schedule 10.05.2012
comment
Это работает очень хорошо, за исключением рендеринга самой HTML-ссылки. Хотя эту часть я легко могу сделать сам, спасибо. - person aknuds1; 10.05.2012