ASP.NET MVC 4 trying to load data into drop downlist from xml file -
i trying load xml file dropdownlist in asp.net mvc.
in layout.cshtml have dropdwnlist this
@html.dropdownlist("market", viewbag.market selectlist, new { id = "market" }) in controller read xml file , assign this:
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(); } i error:
databinding: 'system.data.datarow' not contain property name 'id'.
but can see in dv1 has read xml file , contains item array items xml file.
i new asp.net mvc , don't know doing... used pretty easy webforms bind data dropdown list in .cs file. here pretty confusing. help?
i worked out this
//loads values 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());
i take different approach here, , use dropdownlistfor html helper instead.
in viewmodel :
public selectlist items { get; set; } in controller :
var model = new yourviewmodel(); model.items = new selectlist(dv1.tolist<datarow>(), "id", "value"); return view("~/views/home/index.cshtml", model); on webpage :
@html.dropdownlistfor(m => m.items, model.items)
Comments
Post a Comment