2014-01-29 40 views
6

我嘗試列出從SearchController發送的數據提供的模型數據。但是,我得到了這個錯誤,我找不到如何解決它。文件中只允許有一個「模型」語句

只有一個「樣板」的語句是允許在一個文件中。

這裏是代碼導致錯誤:

@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) 
    { 
     //... 
    } 
} 

如何修復它,好嗎?

回答

5

只有一個「樣板」的語句是允許在一個文件中。

您可以

  • 合併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> 
... 
6

實現這一目標,你應該嘗試這樣

public class MainPageModel 
    { 
    public PosteModel Model1{get; set;} 
    public AppMetierModel Model2{get; set;} 
    } 
相關問題