ASP.NET MVC のドロップダウン リストに xml ファイルを読み込もうとしています。
私はこのlayout.cshtml
ようなdropdwnlistを持っています
@Html.DropDownList("Market", ViewBag.Market as SelectList, new { id = "Market" })
コントローラーで、xml ファイルから読み取り、次のように割り当てます。
public ActionResult Index()
{
DataSet marketDS = new DataSet();
marketDS.ReadXml(Server.MapPath("~/Content//XmlData/Markets.xml"));
EnumerableRowCollection<DataRow> DV1 = marketDS.Tables["Market"].AsEnumerable();
ViewBag.Market= new SelectList(DV1.ToList<DataRow>(), "ID", "Value");
return View();
}
次のエラーが表示されます。
DataBinding: 'System.Data.DataRow' には 'ID' という名前のプロパティが含まれていません。
しかし、DV1 で xml ファイルから読み取られ、xml ファイルのすべての項目を含む ITEM 配列が含まれていることがわかります。
ASP.NET MVC は初めてで、自分が何をしているのかわかりません...以前は、.cs ファイルのドロップダウン リストにデータをバインドする Web フォームを使用するのは非常に簡単でした。ここはかなり紛らわしいです。何か助けはありますか?
私はそれをこのように仕上げました
//DropDownList Market DataSet の値を読み込みます marketDS = new DataSet(); marketDS.ReadXml(Server.MapPath("~/Content//XmlData/Markets.xml"));
EnumerableRowCollection<DataRow> DR1 = marketDS.Tables["Market"].AsEnumerable();
List<string> marketList=new List<string>();
foreach (DataRow dr in DR1)
{
marketList.Add(dr.ItemArray[1].ToString());
}
ViewBag.Market = new SelectList(marketList.AsEnumerable().ToList());