2012-05-10 2 views
2

Можно создать дубликат:
HTML.ActionLink methodКак создать ссылку действия из класса модели?

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

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

+0

Вы хотите создать MyModelClass.GetLinkMethod? –

+0

@AleksejVasinov Разве это не просто деталь реализации? Я хочу, чтобы JSON-сериализовал свойство класса как строку, содержащую ссылки на действия. – aknuds1

ответ

3

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

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

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

UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext); 
+0

Это работает очень хорошо, за исключением рендеринга самой HTML-ссылки. Эта часть, которую я могу легко сделать сама, спасибо. – aknuds1