В файле разрешена только одна инструкция model
Я пытаюсь перечислить данные, предоставленные моделями, данные, отправленные из SearchController. Но я получил эту ошибку, что я не могу найти как это исправить.
в файле разрешен только один оператор 'model'.
вот код вызывает ошибку:
@if (ViewBag.Type == "nomPoste")
{
@model IEnumerable<Monitoring.Models.PosteModel>
if (Model != null)
{
foreach (var item in Model)
{
//...
}
}
if (Model == null)
{
//...
}
}
@if (ViewBag.Type == "nomApplication")
{
@model IEnumerable<Monitoring.Models.AppMetierModel>
if (Model != null)
{
foreach (var item in Model)
{
//...
}
}
if (Model == null)
{
//...
}
}
Как мне это исправить, пожалуйста ?
2 ответов
в файле разрешена только одна инструкция "model".
вы можете
- объединить 2 модели в одну (см. ответ Нилеша)
- разделить виды на отдельные виды на уровне контроллера и иметь одну модель для каждого вида
пример:
if (...)
return View("View1", model1);
else
return View("View2", model2);
- используйте частичные представления и укажите некоторую общую модель в Родительском представлении (например,
@model IEnumerable
) и вызов подвида, который будет использовать определенный тип как модель:
пример:
@if (ViewBag.Type == "nomApplication"))
{
@Html.Partial("ViewForApplications", Model)
}
else
{
@Html.Partial("ViewForWahtever", Model)
}
и в каждом частичном представлении вы можете указать тип модели:
// ViewForApplications
@model IEnumerable<Monitoring.Models.AppMetierModel>
...
чтобы достичь этого, вы должны попробовать вот так
public class MainPageModel
{
public PosteModel Model1{get; set;}
public AppMetierModel Model2{get; set;}
}