c# - How to correctly combine javascript with razor syntax -
i have following code in razor view, need set javascript variables set value coming razor.
however values of variables not being set.
var listpuntos =[]; function onselect(e) { var dataitem = this.datasource.view()[e.item.index()]; @{ var proveedorid = 0; <text>proveedorid = dataitem.proveedorid</text> var list = new unitofwork().puntosventaproveedorrepository.get().where(x => x.proveedorid == proveedorid); proveedorid = 0; <text>listpuntos = list; </text>; <text> var displaytext; $.each(listpuntos, function (key, value) { if (displaytext == undefined) displaytext = value.nombre + ', '; else displaytext = displaytext + value.nombre + ', '; }); document.getelementbyid("puntos").value = displaytext.slice(0,-2); </text> } }
given concrete example, start reducing number of <text>
blocks needed instead wrapping shorter c# bits @{ … }
. improves readability & lessens confusion. example:
var listpuntos =[]; function onselect(e) { var dataitem = this.datasource.view()[e.item.index()]; @{ var proveedorid = 0; } proveedorid = dataitem.proveedorid; @{ var list = new unitofwork().puntosventaproveedorrepository.get().where(x => x.proveedorid == proveedorid); } proveedorid = 0; listpuntos = @json.encode(list); var displaytext; $.each(listpuntos, function (key, value) { if (displaytext == undefined) displaytext = value.nombre + ', '; else displaytext = displaytext + value.nombre + ', '; }); document.getelementbyid("puntos").value = displaytext.slice(0,-2); }
next, inject c# value javascript code being emitted server, need encode value in javascript. best way convert json. done above using json.encode
. in particular, line reading:
listpuntos = @json.encode(list);
i've used json.encode
of course free use whatever json library du jour fits project.
Comments
Post a Comment