Я работаю над проектом класса / домашней работы и пытаюсь создать форму, которая отображает детали заказа с каждым названием продукта, отображаемым в отдельной строке.Вот моя модель, контроллер и представление (соответственно):
public class Order
{
[Key]
public int OrderId {get;set;}
[Required]
[DataType(DataType.Date)]
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime DateCreated {get;set;}
[DataType(DataType.Date)]
public DateTime? DateCompleted {get;set;}
[Required]
public string UserId {get; set;}
[Required]
public ApplicationUser User { get; set; }
public int? PaymentTypeId {get;set;}
public PaymentType PaymentType {get;set;}
public virtual ICollection<OrderProduct> OrderProducts { get; set; }
}
}
// GET: Orders/Details/5
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return NotFound();
}
var order = await _context.Order
.Include(o => o.OrderProducts)
.ThenInclude(op => op.Product)
.Where(o => o.OrderId == id).ToListAsync();
if (order == null)
{
return NotFound();
}
return View(order);
}
<dl class="row">
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.DateCreated)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.DateCreated)
</dd>
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.OrderProducts)
</dt>
<dd class="col-sm-10">
@foreach (var product in Model.OrderProducts)
{
<div>
@Html.DisplayFor(Model => product.Product.Title)
</div>
}
</dd>
</dl>
В настоящее время я получаю сообщение об ошибке:
"InvalidOperationException: элемент модели, переданный в ViewDataDictionary, имеет тип 'System.Collections.Generic.List`1 [Bangazon.Models.Order] ', но для этого экземпляра ViewDataDictionary требуется элемент модели типа' Bangazon.Models.Order '. "
Сначала я думал, что порядокICollection of OrderProducts должен был быть списком, но это совсем не изменило ошибку.Итак, теперь я в растерянности.
Спасибо всем за внимание и терпение.Я все еще очень новичок в разработке.