2010-11-20 2 views
1

Это ViewModel:Другой простой ASP.NET MVC2 Вопрос - ViewModels

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using AfvClassifieds.Models; 

namespace AfvClassifieds.ViewModels 
{ 
    public class ClassifiedsIndexViewModel 
    { 
     public List<Category> Categories { get; set; } 
    } 
} 

Позвольте мне объяснить это одно, я хочу, чтобы захватить все из моей категории таблицы. Затем я хочу передать его на мой взгляд, используя «строго типизированное представление». Это я заполнить мой новый ViewModel:

// Retrieve the categories table from the database. 
      var categoryModel = AfvClassifiedsDB.Categories.ToList(); 

      // Set up our ViewModel 
      var viewModel = new ClassifiedsIndexViewModel() 
      { 
       Categories = categoryModel, 
      }; 

Тогда я хочу, чтобы перебирать мою таблицу в представлении: (Это были его пошло не так).

<% 
     foreach (string categoryName in Model.Categories) 
     { 
     %> 

Я думаю, вы могли бы резюмировать мою проблему как вопрос о переборе списка в C#?

Ошибка заключается в следующем:

Невозможно преобразовать тип 'AfvClassifieds.Models.Category' в 'строка'

+0

Что пошло не так? Я ничего не понимаю из вашего вопроса. Какой вопрос повторяется? Что ты пытаешься сделать? Это совсем не похоже на модель представления, если вы собираетесь сбрасывать в нее свою базу данных. –

+0

Привет, Дарин, добавили ошибку. – JHarley1

+0

Какая строка точно. Прекратите использование vars в примерах кода. Мы не компиляторы. –

ответ

3

ИТАК вместо:

foreach (string categoryName in Model.Categories) 

сделать:

<% foreach (var category in Model.Categories) { %> 
    <div><%: category.Name %></div> 
<% } %> 

или:

<% foreach (Category category in Model.Categories) { %> 
    <div><%: category.Name %></div> 
<% } %> 

или даже лучше: не использовать шаблоны отображения и никогда не писать на ваш взгляд один foreach:

<%: Html.DisplayFor(x => x.Categories) %> 

и в ~/Views/YourControllerName/DisplayTemplates/Category.ascx:

<%@ Control 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewUserControl<AfvClassifieds.Models.Category>" %> 
<div><%: Model.Name %></div> 
+0

вы слишком быстр –

+0

Легенда спасибо Дарин! +++++++ – JHarley1

+0

@ JHarley1, в следующий раз включите сообщение об ошибке, которое вы получаете. Это на первый взгляд ясно. Также не забывайте зеленый галочку, если этот ответ был вам полезен. –

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