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

Popular posts from this blog

node.js - Bad Request - node js ajax post -

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -