Как сделать динамический список в ASP .NET MVC 2 - PullRequest
0 голосов
/ 06 октября 2011

ASP .NET MVC2 приложение.

Файл Site.Master содержит количество имен ссылок на список ul, URL и содержимое URL хранятся в таблице базы данных.

create table webconte(
   elemname char(20) not null,
   itemorder integer not null,
   caption char(40),
   webcontent text,
   primay key (elemname, itemorder) )

Количество элементов в списке и заголовках жестко запрограммировано, например:

 <ul class="nav1"> 
  <li><a href='<%= Url.Action("WebContent", "Home", new { elemname="MainMenu", itemorder=0} ) %>'>caption1</a></li> 
  <li><a href='<%= Url.Action("WebContent", "Home", new { elemname="MainMenu", itemorder=1} ) %>'>caption2</a></li> 
  <li><a href='<%= Url.Action("WebContent", "Home", new { elemname="MainMenu", itemorder=2} ) %>'>caption3</a></li> 
</ul> 

Действие WebContent возвращает значение поля веб-контента, которое содержит html-страницу.

Как создать представление, чтобы:

  1. Количество элементов не быложестко запрограммировано: отображается столько элементов li, сколько элементов в базе данных.

  2. caption1, caption2, ... тексты ссылок извлекаются из столбца заголовка таблицы webconte

Это должно быть завернуто в частичное представление для создания повторно используемого компонента.Я использую MVC2 и C #.

1 Ответ

1 голос
/ 06 октября 2011

В вашем контроллере соберите все ваши подписи в список строк и поместите этот список в ViewData. например,

var captions = new List<string>();
// add stuff to captions...
ViewData["captions"] = captions

Затем на своей странице вы можете извлечь эти подписи и представить свой список:

<ul class="nav1">
<%
    var captions = ViewData["captions"] as List<string>();
    for (int i = 0; i < captions.Count; ++i) {
%>
    <li><a href='<%= Url.Action("WebContent", "Home", new { elemname="MainMenu", itemorder=i} ) %>'><%= captions[i] %></a></li>
<% } %>
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...