2009-10-14 2 views

ответ

3

да есть.

Вы можете либо возвратить SelectList пары значений ключа, которые вы можете отобразить в качестве якорных тегов.

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

public class myAnchorList 
{ 
    public string text {get;set;} 
    public string controller {get;set;} 
    public string action {get;set;} 
} 

затем в вашем коде создать List<myAnchorList>.

List<myAnchorList> Anchors = new List<myAnchorList>(); 

Заполните список данными и верните их.

return View(Anchors). 

, если вы уже проходя по модели, то вам нужно добавить этот список в модель вы возвращающаяся.

Имеют смысл? если не оставить комментарий, и я попытаюсь объяснить дальше.

Редактировать

Позвольте мне закончить картину теперь, когда у меня есть немного больше времени.

На стороне клиента у вас будет этот непроверенный код;

<ul> 
    <% foreach(myAnchorList item in Model.Anchors){ %> 
    <li><%= Html.ActionLink(item.text, item.action, item.controller)%></li> 
    <% } %> 
</ul> 
+0

делает List Якоря = новый List (); и возврат View (Anchors) входит в одно и то же действие? общественный индекс ActionResult() { } Я получаю CS1061 об ошибке: «объект» не содержит определение для «якорей» и не метод расширения «Якоря» –

+0

myAnchorList класс и Анкер это имя общего списка типа myAnchorList. Поэтому вам нужно разместить myAnchorList в пространстве имен, к которому имеет доступ ваш код. то вы передаете список в представление, и для просмотра также потребуется доступ к пространству имен. – griegs

1

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

new ReflectedControllerDescriptor(typeof(TController)).GetCanonicalActions() 

Кредит на этот ответ получает: Accessing the list of Controllers/Actions in an ASP.NET MVC application

Смежные вопросы