2012-06-20 2 views
0

У меня есть таблица в моей базе данных под названием «Программы». Я хочу отобразить вкладку для каждой программы. Я пытаюсь создать частичное представление, чтобы сделать это, а затем я хочу включить частичное представление в каждое представление, которое должно будет иметь эти вкладки. Мой частичный вид выглядит ниже.Как динамически создавать частичные представления

<div id="tabs"> 

    <ul> 
     <li id="HomeTab">@Html.ActionLink("Dashboard", "Index", "Home")</li> 
     <li id="Program1Tab">@Html.ActionLink("Program1", "Index", "Program")</li> 
     <li id="Program2Tab">@Html.ActionLink("Program2", "Index", "Program")</li> 
    </ul> 
</div> 

Я надеюсь, динамически создавать вкладки, используя что-то вроде

@foreach (var ptype in Model) 
    { 
     <li id=\"@ptype.Name\"Tab>@Html.ActionLink(ptype.Name, "Index", "Project")</li> 
    } 

однако мне интересно, как я могу загрузить вкладки без использования контроллера. Могу ли я использовать вспомогательный класс/метод для прямого доступа к модели, минуя контроллер?

обновление: Я также пытался путем создания вспомогательного метода

namespace MyProject.Helpers 
{ 
    public class ProgramTypes 
    { 
     public static List<ProgramType> ProgramTypesList() 
     { 
      MyDbContext db = new myDbContext(); 
      return db.ProgramTypes.ToList<Programtype>(); 

     } 
    } 
} 

, а затем доступ к ним с помощью

@foreach (var ptype in MyProject.Helpers.ProgramTypes.ProgramTypesList()) 

однако я не уверен, если это правильно, что нужно сделать.

+0

просто добавили еще несколько code.see выше – superartsy

+0

ли вы посмотреть на редактор шаблоны? –

+0

есть. Я использовал Шаблоны Редактора. Они по-прежнему являются «видами» и не имеют прямого доступа к модели. – superartsy

ответ

1

Лучшее решение - прохождение набор программ на ваш взгляд

@model IQueyrable<Program> 
<div id="tabs"> 
    <ul> 
    @foreach (var ptype in Model) 
    { 
     <li>@Html.RenderPartial("ProgramTab", ptype)</li> 
    } 
    </ul> 
</div> 

поэтому вы должны создать еще один частичный вид, где вы будете отображать информацию о программе. Если вы хотите организовать это как вкладки вы должны использовать что-то вроде вкладок JQuery

вы не должны использовать ActionLink только RenderPartial или RenderAction

+0

см. Мое редактирование выше. Я не уверен, что это нормально. – superartsy

+1

вам не нужно использовать actionlink просто renderpartial или renderaction – Bohdan

+0

отличная идея для пользователя RenderAction. Спасибо @Bohdan – superartsy

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