Можно ли поставить 2 модели в один вид? Моя страница работает нормально с одной моделью, однако, когда я пытаюсь добавить другую строку модели ниже, мой код решает начать с рядом ошибок:
@model ProjectShop.Models.Delivery
Мой код, который работает до того, как я добавлю строку выше, показан ниже:
@model ProjectShop.Models.Products
@{
ViewBag.Title = "Products";
Layout = "~/Views/Shared/_ProductLayout.cshtml";
}
<p>@Html.DisplayFor(model => model.productname) </p>
Каким был бы метод, позволяющий иметь две модели в одном представлении, позволяющий мне вызывать данные из двух источников?
Edit:
Это новый класс, который будет выступать в качестве модели представления для html-страницы, но я предполагаю, что он совсем не прав:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ProjectShop.Models;
namespace ProjectShop.ViewModels
{
public class ProductDelivTimes
{
public Models.Products;
public Models.Delivery;
}
}
Edit:
public class ProductDelivTimes
{
public Models.Products ProductModel;
public Models.Delivery DeliveryModel;
}
В моем html-файле:
@model IEnumerable<ProjectShop.ViewModels.ProductDelivTimes>
Edit:
@model IEnumerable<ProjectShop.ViewModels.PerformanceTimes>
@{
Layout = "~/Views/Shared/_Layout.cshtml";
var grid = new WebGrid(Model, rowsPerPage: 5, defaultSort: "Name");
ViewBag.Created = TempData["ProductCreated"];
ViewBag.Created = TempData["ProductDeleted"];
}
@grid.GetHtml(
tableStyle: "grid",
headerStyle: "gridhead",
rowStyle: "gridRow",
alternatingRowStyle: "gridRow",
mode: WebGridPagerModes.All,
columns: grid.Columns(
grid.Column("Image", format: @<text><img src="@item.image" alt="" width="84px" height="128px"/></text>, style: "Image"),
grid.Column("Products", format: @<text>@Html.Raw(item.Products.name.Substring(0, item.Products.name.IndexOf(".") + 1))</text>, style: "Products")
))