TarunKumarSusarapu Ответов: 1

Элемент модели, передаваемый в словарь, имеет тип "devexpress.dashboardweb. workingmode", но для этого словаря требуется элемент модели типа


Я получил ошибку '
The model item passed into the dictionary is of type 'DevExpress.DashboardWeb.WorkingMode', but this dictionary requires a model item of type 
"при рендеринге частичного вида во всплывающем окне при нажатии кнопки.

Здесь я взял три частичных представления на странице просмотра index.cshtml.

Три частичных вида имеют разные модели.

Во всплывающем содержимом я вызываю частичное представление другой формы.

Я создал Кортеж, в котором я определил две модели, но все равно получил ту же ошибку.

Пожалуйста, предложите мне.

Что я уже пробовал:

индекс.cshtml по

@model Tuple<DevExpress.DashboardWeb.WorkingMode, DashboardDemo.Models.vw_100_QUERY_FOR_XLS_WEEK_IN_PROGRESS_016_Forecast_Follow_Current_Data>


 @Html.Partial("~/Views/Home/DashboardPartial.cshtml")
@*</div>*@
@*<div style="position: absolute; left:0px;top:40px;right:350px;bottom:0;
height: 100%;
          ">*@
@(Html.DevExpress().PopupControl(settings =>
           {
               settings.Name = "PopupControlSelectSub";
               settings.ShowOnPageLoad = false;
               settings.ShowMaximizeButton = true;
               settings.Width = 1200;
               settings.Height = 900;
               settings.CallbackRouteValues = new { Controller = "Home", Action = "Main_Menu" };
               settings.AllowDragging = true;
               settings.CloseAction = CloseAction.CloseButton;
               settings.PopupAnimationType = AnimationType.Slide;
               settings.HeaderText = "Main Menu";
               settings.Modal = true;
               settings.PopupHorizontalAlign = PopupHorizontalAlign.WindowCenter;
               settings.PopupVerticalAlign = PopupVerticalAlign.WindowCenter;
               settings.PopupElementID = "btnName_CD";
               settings.ScrollBars = ScrollBars.Horizontal;
               settings.SetContent(() =>
               {
                   Html.RenderPartial("Main_Menu");
               });
           }).GetHtml())
@Html.Partial("~/Views/TreeView/VirtualModePartial.cshtml")
@Html.Partial("~/Views/Home/ForecastGridPartial.cshtml")


Main_Menu.cshtml по

@model DashboardDemo.Models.vw_100_QUERY_FOR_XLS_WEEK_IN_PROGRESS_016_Forecast_Follow_Current_Data
<link href="~/Content/ForbiddenZones.css" rel="stylesheet" />
<script src="@Url.Content("~/Content/scripts.js")" type="text/javascript"></script>
@{
    ViewBag.Title = "Main Menu";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Main Menu</h2>
@Html.DevExpress().DockPanel(
        settings =>
        {
            settings.Name = "panel1";
            settings.PanelUID = "panel1";
            settings.HeaderText = "Requester's Perimeter";
            settings.VisibleIndex = 0;
            settings.Width = 200;
            settings.Height = 200;
            settings.ShowHeader = true;
            settings.ShowCloseButton = false;
            settings.AllowResize = true;
            settings.OwnerZoneUID = "leftZone";
            settings.Styles.Content.Border.BorderStyle = BorderStyle.Solid;
            settings.Styles.Content.Border.BorderWidth = 1;
            settings.Styles.Content.Border.BorderColor = Color.FromArgb(0xBBD7E7);
            settings.Styles.Content.BackColor = Color.FromArgb(0xDBEBF4);
            settings.Styles.Content.Paddings.Padding = 0;
            settings.SetContent(() =>
            {
                @Html.DevExpress().Label(
                    s =>
                    {
                        s.Name = "Label1";
                        s.Text = "Req Section:";
                    }
                    ).GetHtml();
                @Html.DevExpress().ComboBox(
                    q =>
                    {
                        q.Name = "ddl_Req_Section";
                        //q.Properties.DataSource = AINIPMKPIDashboard.Models.MainMenu.GetRequiredSelection();
                        //q.CallbackRouteValues = new { Controller = "Home", Action = "Main_Menu", id = localvar };
                        q.Properties.ValueField = "txt_Req_Section";
                        q.Properties.TextField = "txt_Req_Section";
                        q.Properties.ValueType = typeof(string);
                        q.Properties.NullText = "All";
                        q.Properties.DropDownStyle = DropDownStyle.DropDown;
                        
                    }
                    ).BindList(ViewBag.GetReqsellist).Bind(Model.txt_Req_Section).GetHtml();
                @Html.DevExpress().Label(
                   a =>
                   {
                       a.Name = "Label2";
                       a.Text = "Req IPT:";
                   }
                   ).GetHtml();
                @Html.DevExpress().ComboBox(
                    b =>
                    {
                        b.Name = "ddl_Req_IPT";
                    }
                    ).GetHtml();
}

1 Ответов

Рейтинг:
1

F-ES Sitecore

Html.RenderPartial("Main_Menu");


Вы не даете частичному представлению модель, поэтому (я думаю) он использует модель родителя, который является вашим кортежем, однако Main_Menu нуждается в vw_100_QUERY_FOR_XLS_WEEK_IN_PROgress_016_forecast_follow_current_data. Попробуйте что-нибудь вроде

Html.RenderPartial("Main_Menu", Model.Item2);


это передаст часть.... _Current_Data родительской модели частичному представлению как свою собственную модель.


TarunKumarSusarapu

Я уже дал, но все еще получаю ту же ошибку

F-ES Sitecore

Трудно точно определить проблему, так как полная ошибка не опубликована, но она вполне объяснима. Вам нужно определить представление, которое имеет проблему, определить, что вызывает это представление, и убедиться, что представление задано правильной моделью.

TarunKumarSusarapu

Здесь я объясняю простым способом

Это мой основной вид, рендеринг четырех частичных видов с разными моделями, поэтому я создал Кортеж.

@ * @model Tuple< DevExpress.DashboardWeb.Рабочий Режим, DashboardDemo.Модели.vw_100_QUERY_FOR_XLS_WEEK_IN_PROgress_016_forecast_follow_current_data&ГТ;*@


@Html. Partial ("~/Views/Home/DashboardPartial.cshtml")

@Html. Partial ("~/Views/TreeView/VirtualModePartial.cshtml")

@Html. Partial ("~/Views/Home / PopupPartial.cshtml")

@Html. Partial ("~/Views/Home/ForecastGridPartial.cshtml")

Для Popuppartial view в разделе content я вызываю другое частичное представление, которое содержит модель как item2 в кортеже

PopupPartial.cshtml по

@(Html. DevExpress (). PopupControl(settings = & gt;
{
настройки.Name = " PopupControlSelectSub";
настройки.ShowOnPageLoad = false;
настройки.ShowMaximizeButton = true;
настройки.Ширина = 1200;
настройки.Высота = 900;
настройки.CallbackRouteValues = new { Controller = "Home", Action = " Main_Menu" };
настройки.AllowDragging = истина;
настройки.CloseAction = CloseAction.Закрытьв;
настройки.PopupAnimationType = AnimationType. Slide;
настройки.HeaderText = " Главное Меню";
настройки.Модальные = истина;
настройки.PopupHorizontalAlign = PopupHorizontalAlign.WindowCenter;
настройки.PopupVerticalAlign = PopupVerticalAlign.WindowCenter;
настройки.PopupElementID = " btnName_CD";
настройки.Полосы Прокрутки = Полосы Прокрутки.Горизонтальный;
настройки.SetContent(() =>
{
HTML-код.RenderPartial("Main_Menu");
});
}).GetHtml())


При загрузке страницы я получил эту ошибку

Элемент модели, передаваемый в словарь, имеет тип "devexpress.dashboardweb.workingmode", но для этого словаря требуется элемент модели типа " @model DashboardDemo.Модели.vw_100_QUERY_FOR_XLS_WEEK_IN_PROgress_016_forecast_follow_current_data'

F-ES Sitecore

Эта ошибка делает его похожим на то, что вы неправильно определили "@model" в частичном представлении. Ошибка должна выглядеть так

Элемент модели, передаваемый в словарь, имеет тип "devexpress.dashboardweb.workingmode", но для этого словаря требуется элемент модели типа "DashboardDemo".Модели.vw_100_QUERY_FOR_XLS_WEEK_IN_PROgress_016_forecast_follow_current_data'

Я все еще не могу понять, какие представления имеют какую модель, и вы все еще не сказали, в какой модели есть проблема, поэтому трудно дать какой-либо совет, кроме того, чтобы убедиться, что вы предоставляете правильную модель правильному представлению. Если вы вкладываете частичные представления, вам все равно нужно это сделать, поскольку из вашего кода Вы не даете частичным представлениям конкретную модель...это не магия, он не может решить, что он должен использовать для модели, вы должны дать ему модель.

TarunKumarSusarapu

Все еще есть ошибка при назначении моделей частичному виду

@model Tuple< DevExpress.DashboardWeb.Рабочий Режим, DashboardDemo.Модели.vw_100_QUERY_FOR_XLS_WEEK_IN_PROgress_016_forecast_follow_current_data&ГТ;


@HTML-код.Частичная("~/Вид/Домашний/DashboardPartial.cshtml по -", модель.Элемент1)

@Html. Partial ("~/Views/TreeView/VirtualModePartial.cshtml")

@HTML-код.Частичная("~/Вид/Домашний/PopupPartial.cshtml по -", модель.Место № 2)

@HTML-код.Частичная("~/Вид/Домашний/ForecastGridPartial.cshtml по -", модель.Место № 2)