2015-07-25 2 views
2

У меня возникают проблемы с доступом к одному из свойств модели, через которую я передаю представление.Доступ к свойству модели в ASP.NET MVC View

Модель определяется следующим образом:

public class ProductBasket 
{ 
    public ProductBasket() 
    { 
     Products = new List<ProductConfiguration>(); 
     Errors = new List<string>(); 
    } 
    public List<ProductConfiguration> Products { get; set; } 
    public List<string> Errors { get; set; } 
} 

На мой взгляд, эта директива модель объявляется следующим образом:

@model MyApp.ViewModels.Product.ProductBasket 

Я не могу получить доступ к Products собственности в foreach цикле. В VisualStudio, когда я парить переменную Model в цикле он показывает:

List<MyApp.ViewModels.Product.ProductConfiguration> 
WebViewPage<List<MyApp.ViewModels.Product.ProductConfiguration>>.Model { get; } 

Это модель предыдущего я использую - я не знаю, почему это там?

То, что я сделал

Инстинкт говорит мне, что я должен быть в состоянии получить доступ к свойству Продукты с Model.Products (скажите, пожалуйста, если это неправильно), но я не понимаю, почему точка зрения не является передается ProductBasket?

+0

Проверьте, если вы передаете правильную модель в контроллере и да, вы должны быть в состоянии получить доступ к продуктам с Model.Products. – fsacer

ответ

2

Похоже, вы отправляете коллекцию объектов класса ProductConfiguration на представление. Убедитесь, что вы отправляете один объект ProductBasket класса на ваш взгляд из вашего метода действия

public ActionResult Something() 
{ 
    var vm = new ProductBasket(); 

//The below line is hard coded for demo. You may replace with actual list from db. 
    vm.Products.Add(new ProductConfiguration { Id=1,Name="test"}); 

    return View(vm); 
} 

Предполагая, что ваш ProductConfiguration класс имеет идентификатор и имя свойства.

И ваш вид должен быть связан с ProductBasket

@model YourNameSpaceHere.ProductBasket 
<h1>Products</h1> 

@foreach(var product in Model.Products) 
{ 
    <h2>@product.Name</h2> 
} 
+0

Моя ошибка, как вы предположили, я передавал старую модель View. Смутно, я теперь убедился, что возвращаю ProductBasket и строил проект, но я все еще получаю тот же список ?? – NRKirby

+0

Если вы наведите указатель мыши на Model.Products, вы получите это, и это будет правильно. – Shyju

+0

Я понимаю, что, хотя я просто нависаю над моделью – NRKirby