2016-05-11 46 views
-1

我的控制器文件包含如下。無法將類型'System.Data.Linq.ISingleResult <"">'隱式轉換爲'System.Collections.Generic.IEnumerable <" ">。顯式轉換存在?

public ActionResult Index() 
{ 
    CityNameList ct = dt.AllCity(); /*Returns Citynames. Used Linq to Sql Classes to retrieve from DB. */ 

    return View(ct); 
} 

而在CityNameList.cs文件中型號

public class CityNameList 
{ 
    public IEnumerable<string> CityName {get;set;} 
} 

真的盡力了很多解決這個問題,但沒有用。 我是MVC的新手。我需要清楚的想法將數據從控制器中的存儲過程的結果傳遞到View。

+0

請提供AllCity中的代碼() – JDupont

+0

您可以添加有關您的程序的更多信息以及您收到錯誤消息的哪一行?我假設你試圖將一個類型爲SingleResult的值賦給CityName,這個值是IEnumerable ,但是你沒有提供太多的信息。 – Auguste

+0

@JDupont - AllCity()是通過Linq調用到Sql類的存儲過程的名稱,dt是L2SQL類中的對象od數據上下文.............還有一件事我需要改變CityNmaeList.cs文件中的任何內容.. ?? – Abhi

回答

0

看起來像你正在使用LinqToSql。如果存儲過程返回ISingleResult,那麼您需要枚舉結果以獲取數據。您可以調用ToList()將結果轉換爲IEnumerable。此外,它看起來像

var result = dt.AllCity(); 
CityNameList ct = null; 
if (result != null && result.Any()) { 
    ct = new CityNameList { CityName = result.ToList()}; 
} 
return View(ct); 
+0

@ vendettamit - 沒有用..same錯誤越來越喜歡 - 不能隱式轉換類型'System.Collections.Generic.List '爲'System.Collections.Generic.IEnumerable '。存在明確的轉換(你是否缺少轉換?).....所有我需要映射存儲過程輸出到CityNamelist.cs類強類型視圖生成.. – Abhi

-1

變化CityNameList類屬性如下:

public class CityNameList 
    {  
     public string CityName{ get; set; } 
    } 

並添加另一個類存儲過程輸出映射到類CityNameList像下面。

public class CityDataContext 
{ 
    DataDataContext dt = new DataDataContext(); 
    public IEnumerable<CityNameList> DisplayName 
    { 
     get 
     { 
      List<CityNameList> Details = new List<CityNameList>(); 
      var result = dt.AllCity().ToList(); 
      for (int j = 0; j < result.Count;j++) 
      { 
       CityNameList city = new CityNameList(); 
       city .CityName= Convert.ToString(result[j].cityname); 

       Details.Add(city); 
      } 
      return Details; 
     } 
    } 
} 

凡內的循環城市名是表將在DB執行存儲過程後返回的列名,最後加入用模型類CityNameList.It強類型視圖將做工精細....

相關問題