2014-04-08 92 views
0

我建立一個解決方案具有4層foreach語句不能因爲操作不包含一個公共定義「的GetEnumerator」

從不同勢的DB
  • 1-單溶液(數據訪問層)具有多(DALS)。

  • 2-Data Store(訪問所有DAL)。

  • 3-業務層BL(haslogicalmethods)

  • 4-表示層(MVC4)。


問題是我想呼籲通過BLL與對名稱在DAL(設立)一個列表搜索方法來搜索它,並且要顯示的結果鑑於PL。 的EstController

public ActionResult Index(string Name) 
    { 
     if (Name != null) 
     { 
      IList list = BLL.Establishment_Serv.getEstablishmentByName(Name.ToUpper()); 
      return View(list); 
     } 
     return View(); 
    } 

和EST /索引視圖

@using (Html.BeginForm("Index" ,"Est",FormMethod.Get)) 
{ 
    <p> 
     Find by name: @Html.TextBox("Name") 
     <input type="submit" value="Search" /> 
    </p> 
} 
<table> 
@foreach (var item in Model) 
{ 
    <tr> 
     <td>@Html.DisplayFor(modelItem => item.Id)</td> 
     <td>@Html.DisplayFor(modleItem => item.Name)</td> 
    </tr> 
} 
</table> 

,我面對的foreach錯誤statement.And如果那裏做一個最好的辦法HINT我請。

+1

我想大部分的解決方案,並建議在這個網站,並與我沒有什麼工作。 – user3509742

+0

如果你列表爲空,那麼你會得到錯誤 –

回答

2

你把這個視圖中:

@model IEnumerable<YourModel> 
+0

認爲你的幫助:) – user3509742

0

如果您的列表爲空,那麼你會得到錯誤

public ActionResult Index(string Name) 
    { 
     var list=new List<YourModelName>(); 
     if (Name != null) 
     { 
      list = BLL.Establishment_Serv.getEstablishmentByName(Name.ToUpper()); 
      return View(list); 
     } 
     else { 
     return View(list); 
} 
    } 
+0

謝謝你回答我,但你的意思是「Establishment_ServModel」? – user3509742

+0

你傳遞數據到視圖的模型,給我們在視圖中的模型名稱。它應該像@model IEnumerable

+0

請參閱答案更新 –

相關問題