62,074
社区成员
发帖
与我相关
我的任务
分享
<YearTable>
<yearNumber>2005</yearNumber>
<yearNumber>2006</yearNumber>
</YearTable>
public SelectList LoadYearDataFromXml
{
get
{
try
{
DataSet ds = new DataSet();
ds.ReadXml(System.Web.HttpContext.Current.Server.MapPath("~/App_Data/xmlData_Years.xml"));
DataTable dt = ds.Tables[0];
EnumerableRowCollection<DataRow> rows = dt.AsEnumerable();
List<DataRow> _item = rows.ToList<DataRow>();
return new SelectList(_item);
}
catch
{
return null;
}
}
}
// GET: /System_MonthMaxMoneySetting/Create
public ActionResult Create()
{
System_MonthMaxMoneySetting mmms = new System_MonthMaxMoneySetting();
ViewBag.Items = mmms.LoadYearDataFromXml;
return View();
}
<div class="editor-field">
@Html.DropDownListFor(model => model.IYear,ViewBag.Items as SelectList)
@Html.ValidationMessageFor(model => model.IYear)
</div>
<select data-val="true" data-val-number="字段 Year 必须是一个数字。" data-val-required="Year 字段是必需的。" id="IYear" name="IYear"><option>System.Data.DataRow</option>
<option>System.Data.DataRow</option>
<option>System.Data.DataRow</option>
</select>
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
模型生成过程中检测到一个或多个验证错误:
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType“SelectListItem”未定义键。请为该 EntityType 定义键。
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet“SelectListItems”基于未定义任何键的类型“SelectListItem”。
我用如下代码,可正常运行:
public SelectList LoadYearDataFromXml
{
get
{
try
{
DataSet ds = new DataSet();
ds.ReadXml(System.Web.HttpContext.Current.Server.MapPath("~/App_Data/xmlData_Years.xml"));
DataTable dt = ds.Tables[0];
List<SelectListItem> typeitems = new List<SelectListItem>();
foreach (DataRow row in dt.Rows)
{
typeitems.Add(new SelectListItem{Text = row[0].ToString(),Value = row.ItemArray[0].ToString() });
}
return new SelectList(typeitems,"Value","Text");
}
catch
{
return null;
}
}
}
public List<SelectListItem> LoadYearDataFromXml
{
get
{
try
{
DataSet ds = new DataSet();
ds.ReadXml(System.Web.HttpContext.Current.Server.MapPath("~/Content/A.xml"));
DataTable dt = ds.Tables[0];
EnumerableRowCollection<DataRow> rows = dt.AsEnumerable();
List<DataRow> item = rows.ToList();
return item.Select(dataRow => new SelectListItem
{
Text = dataRow[0].ToString(), Value = dataRow.ItemArray[0].ToString(),
}).ToList();
}
catch
{
return null;
}
}
}