2010-11-20 22 views
1

Bu ViewModel geçerli: Başka basit ASP.NET MVC2 Soru - 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; } 
    } 
} 

benim Kategorisi tablosundan şeyi yakalamak istediğiniz, bana bunu açıklayalım. Ardından "güçlü yazılan görünüm" kullanarak görünümüme aktarmak istiyorum. Bu benim yeni ViewModel doldurmak:
// Retrieve the categories table from the database. 
      var categoryModel = AfvClassifiedsDB.Categories.ToList(); 

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

Sonra görünümünde masama arasında yineleme istiyorum: (Bu were onun yanlış gitti).

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

seni C# Bir listede yineleme bir sorun olarak sorunumu özetlemek olabilir mi?

'string'

+0

? Senin sorunundan bir şey anlamadım. Hangi sorun yineleniyor? Ne yapmaya çalışıyorsun? Eğer veritabanınızı içine dökecekseniz, bu bir bakış modeline benzemez. –

+0

Hey Darin, Hata eklediniz. – JHarley1

+0

Tam olarak hangi dize. Kod örneklerinde vars kullanmayı bırakın. Biz derleyiciler değiliz. –

cevap

3

Tamam etmek 'AfvClassifieds.Models.Category' türü dönüştürmek böylece yerine Can not:

foreach (string categoryName in Model.Categories) 

yapmak şöyle

hatadır:

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

ya:

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

veya daha iyi:

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

ve ~/Views/YourControllerName/DisplayTemplates/Category.ascx yılında: senin görünümünde tek foreach yazmam ekran şablonları kullanmak ve yanlış gitti ne

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

Çok hızlısın –

+0

Efsane teşekkürler Darin! +++++++ – JHarley1

+0

@ JHarley1, bir dahaki sefere aldığınız hata mesajını ekleyin. İlk bakışta bazı şeyleri netleştirir. Bu cevabın size yardımcı olması durumunda yeşil kenarı da unutmayın. –