Использование контроллера для получения данных в сетку mvc

#c# #.net-core

#c# #.net-ядро

Вопрос:

Я хочу загрузить сетку mvc с данными из контроллера:

Код:

GridView dumasGrid :

 @model IEnumerable<BoneID.Dumas.Obroci>

@{
    ViewBag.Title = "PopisObroka";
    WebGrid grid = new WebGrid(Model, ajaxUpdateContainerId: "tblGrid");
}

<div>
    @grid.GetHtml();
</div>
  

Страница просмотра, которая загружает страницу просмотра сетки: dumasGridPlaner :

 @using BoneID.Classes
@using BoneID.Net.Static
@model BoneID.Web.Models.ModelDefault
@{
    var isIzoProd = Model.ParametriEx.Any(a => a.Type == CParametriEx.ParametriExType.IzoProd);
}

<div>
    @Html.Partial("dumasGrid");
</div>   
  

Главная страница, которая загружает страницу с сеткой: Dumas

 <div id="tabs-1">                                     
    @Html.Partial("dumasGridPlaner",Model.Default)
</div>
  

Мой контроллер:

 namespace BoneID.Web.Client.Controllers
{
    public class DumasController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        [ChildActionOnly]
        public ActionResult PopisObroka()
        {
            Obroci obr = new Obroci();
            var menu = obr.GetObroci();
            return PartialView(menu);
        }
    }
}
  

Ошибка, которую я получаю на странице DumasGridPlaner :

Система.Исключение InvalidOperationException: ‘Элемент модели, переданный в словарь, имеет тип ‘BoneID.Web.Models.ModelDefault’, но для этого словаря требуется элемент модели типа ‘System.Коллекции.Общий.IEnumerable`1[BoneID.Дюма.Obroci]’

В чем проблема? Что я называю неправильно?

Комментарии:

1. Я не думаю, что вы предоставили нам достаточно кода, чтобы указать причину ошибки, однако эта ошибка возникает, когда вы передаете объект неправильного типа в свое представление. Здесь ваше представление ожидается IEnumerable<BoneID.Dumas.Obroci> в качестве модели, но вы можете передавать что-то еще.

2. Я согласен с @Priyank. Нам нужно больше информации, чтобы понять вашу структуру MVC и то, как вы отправляете свою модель в представление?

3. Dumas.cshtml — это моя главная страница общего просмотра, где я вызываю другие представления и Controller. Других страниц нет.

4. Вы передаете данные внутри частичного представления, а также непонятно, почему вы используете 2 частичных представления для передачи этих данных. Я думаю, вам нужно просто простое представление или viewcomponent для передачи ваших данных.

5. В вашем ‘dumasGridPlaner’ при вызове @Html.Partial("dumasGrid") вы не передаете никакой модели, тогда как ‘dumasGrid’ ожидает IEnumerable<BoneID.Dumas.Obroci>