我的控制器文件包含如下。
public ActionResult Index()
{
CityNameList ct = dt.AllCity(); /*Returns Citynames. Used Linq to Sql Classes to retrieve from DB. */
return View(ct);
}
在Model
中的CityNameList.cs文件中public class CityNameList
{
public IEnumerable<string> CityName {get;set;}
}
真的很多尝试解决了这个问题,但没有用。 我是MVC的新手。我需要明确的想法将数据传递给View中的存储过程结果。
答案 0 :(得分: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);
答案 1 :(得分:-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;
}
}
}
for循环中的cityname是在DB中执行存储过程后将返回的表的列名,最后使用Model Class CityNameList添加强类型视图。它将正常工作....