Привет Я использую viewmodel, и в моем контроллере невозможно преобразовать список в объект.При использовании viewmodel невозможно преобразовать список в объекты
Вот мой ViewModel:
namespace SmartAdvertising.Backend.Models
{
public class DashboardModel
{
public Advert allAdvert { get; set; }
public Advert allAdvert2 { get; set; }
}
}
Контроллер:
public ActionResult Dashboard()
{
string email_uzivatele = (String)Session["email"];
DashboardModel adverts = new DashboardModel();
List<Advert> time = AdvertServiceLayer.Instance.SelectAllWith(email_uzivatele, "Reklama na určitou dobu");
List<Advert> price = AdvertServiceLayer.Instance.SelectAllWith(email_uzivatele, "Reklama na určitou částku");
adverts.allAdvert = time;
adverts.allAdvert2 = price;
return View(adverts);
}
Вид:
@model IList<SmartAdvertising.Backend.Models.DashboardModel>
@{
ViewBag.Title = "Dashboard";
}
<h1>@ViewBag.Title</h1>
<div class="row">
<div class="col-md-12 col-sm-12">
<h2>Všechny reklamy na určitou dobu</h2>
<table class="table-hover" style="width:100%">
<tr>
<th>
Název reklamy
</th>
<th>
Typ reklamy
</th>
<th>
Cena reklamy
</th>
<th>
Email uživatele
</th>
<th>
Datum začátku
</th>
<th>
Datum konce
</th>
<th>
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@item.nazev_reklamy
</td>
<td>
@item.typ_reklamy
</td>
<td>
@item.cena_reklamy
</td>
<td>
@item.email_uzivatele
</td>
<td>
@item.datumz
</td>
<td>
@item.datumk
</td>
</tr>
}
</table>
</div>
<div class="col-md-12 col-sm-12">
<h2>Všechny reklamy na určitou částku</h2>
<table class="table-hover" style="width:100%">
<tr>
<th>
Název reklamy
</th>
<th>
Typ reklamy
</th>
<th>
Cena reklamy
</th>
<th>
Email uživatele
</th>
<th>
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@item.nazev_reklamy
</td>
<td>
@item.typ_reklamy
</td>
<td>
@item.cena_reklamy
</td>
<td>
@item.email_uzivatele
</td>
</tr>
}
</table>
</div>
<div class="col-md-12 col-sm-12">
</div>
</div>
Но ввиду он дает эту ошибку:
Error 1 foreach statement cannot operate on variables of type 'SmartAdvertising.Backend.Models.DashboardModel'
because 'SmartAdvertising.Backend.Models.DashboardModel' does not contain a public definition for 'GetEnumerator'
И в контроллере эти две строки:
adverts.allAdvert = time;
adverts.allAdvert2 = price;
дают мне эту ошибку:
Error 3 Cannot implicitly convert type 'System.Collections.Generic.List<SmartAdvertising.Entities.Advert>'
to 'SmartAdvertising.Entities.Advert'
Ошибки ясны. Свойства в вашей модели не являются типами списков. – Balde
Вы пытаетесь назначить список вещей для свойства, которое принимает только одну вещь. И ваша модель взгляда не является списком чего-либо, поэтому, конечно, вы не можете перебирать ее. – Amy
Но когда я изменяю в своих объектах viewmodel в список: public List allAdvert {get; задавать; } public List allAdvert2 {get; задавать; } это то, что дает мне ту же ошибку: foreach оператор не может работать с переменными типа «SmartAdvertising.Backend.Models.DashboardModel», потому что «SmartAdvertising.Backend.Models.DashboardModel» не содержит общедоступного определения для «GetEnumerator», –