文件中只允许使用一个“模型”语句

时间:2014-01-29 04:11:41

标签: c# asp.net asp.net-mvc asp.net-mvc-4 views

我尝试列出从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 个答案:

答案 0 :(得分:6)

实现这一点你应该尝试这样

public class MainPageModel
  {
    public PosteModel Model1{get; set;}
    public AppMetierModel Model2{get; set;}
  }

答案 1 :(得分:6)

文件中只允许使用一个'model'语句。

你可以

  • 将2个模型合并为一个(参见Nilesh答案)
  • 将视图拆分为控制器级别的单独视图,并为每个视图设置一个模型

样品:

 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>
...