从 Razor 视图中的对象获取值 Javascript/Jquery
Getting values from objects in Razor view to Javascript/Jquery
在我看来,我有以下代码,它加载了一个对象的属性,当我 运行 我的项目时,它显示得很好..
但是,如何访问 Jquery 中该对象的属性?目前我从 console.logs 得到的是未定义的。
编辑:我尝试将 @Html.Raw(Json.Encode(Model) 添加到我的视图中,现在当我在 html 中点击检查时,我可以看到对象的每个道具,但我仍然无法访问 jquery。
function EditTrabajoEnColegio(li) {
console.log(li); //this displays the entire li in the console.
//From here, I get all as undefined
console.log(this.TrabajoId);
console.log(li.contrato);
console.log(li.mesIngreso);
console.log(li.anioIngreso);
console.log(li.esTitular);
console.log(li.cargoColegio);
console.log(li.sueldoBruto);
}
<li id="li-@Model.TrabajoId" class="list-group-item"
onclick="EditTrabajoEnColegio(this)">
@Model.MesIngresoStJohns/@Model.AnioIngresoStJohns
-
@(Model.AnioEgresoStJohns != null ?
Model.MesEgresoStJohns.ToString() + "/" +
Model.AnioEgresoStJohns.ToString() : "Actualidad")
-
@Model.SedeNombre
Model.TipoDocenteId
Model.TieneContrato
@Model.CargoColegio
@Html.HiddenFor(x => x.TrabajoId)
@Html.HiddenFor(x => x.SedeId)
@Html.HiddenFor(x => x.AnioEgresoStJohns)
@Html.HiddenFor(x => x.AnioIngresoStJohns)
@Html.HiddenFor(x => x.MesIngresoStJohns)
@Html.HiddenFor(x => x.MesEgresoStJohns)
@Html.HiddenFor(x => x.FechaIngreso)
@Html.HiddenFor(x => x.FechaEgreso)
@Html.HiddenFor(x => x.SedeNombre)
@Html.HiddenFor(x => x.CargoColegio)
@Html.HiddenFor(x => x.TipoDocenteId)
@Html.HiddenFor(x => x.EsTitular)
@Html.HiddenFor(x => x.TieneContrato)
@Html.HiddenFor(x => x.SueldoBruto)
</li>
}
我们将不胜感激任何帮助。
您需要使用 javascript 或 jquery 函数,例如 find()
console.log(li.find("#TrabajoID").val());
或类似的东西:
$(li).find("ul").each(function( index ) {
console.log(($(this).text());
});
对于未来的读者,我能够解决它。
我所做的是,
JSON.parse('@Html.Raw(Json.Encode(型号))');
这让我可以传递定义的对象
并在 jquery
function EditTrabajoEnColegio(li) {
$("#CargoColegio").val(li.CargoColegio);
$("#SueldoBruto").val(li.SueldoBruto);
$("#AnioIngresoStJohns").val(li.AnioIngresoStJohns);
$("#MesIngresoStJohns").val(li.MesIngresoStJohns);
}
请注意,参数名称在 jquery 中无关紧要,它只是您从视图中获得的内容。
问题中你的要求不是很明确,但是你在javascript中所做的是错误的。
onclick="EditTrabajoEnColegio(this)"
这里this
指的是你用razor创建的li
对象。因此在函数 EditTrabajoEnColegio
li
对象中将存储您传递给 onclick
事件的 li
元素。因此,即使您从 console.log(li)
获得结果(它将打印整个 li 对象),它也不会显示 console.log(this.TrabajoId)
的任何值('TrabajoId' 不是 属性 li 对象,它是模型中的一个属性)。
也可以通过
访问模型数据
var data = JSON.parse('@Html.Raw(Json.Encode(Model))');
您现在可以使用带有 data
变量的模型中的所有值,就像您使用普通的 Json 对象一样..
在我看来,我有以下代码,它加载了一个对象的属性,当我 运行 我的项目时,它显示得很好.. 但是,如何访问 Jquery 中该对象的属性?目前我从 console.logs 得到的是未定义的。
编辑:我尝试将 @Html.Raw(Json.Encode(Model) 添加到我的视图中,现在当我在 html 中点击检查时,我可以看到对象的每个道具,但我仍然无法访问 jquery。
function EditTrabajoEnColegio(li) {
console.log(li); //this displays the entire li in the console.
//From here, I get all as undefined
console.log(this.TrabajoId);
console.log(li.contrato);
console.log(li.mesIngreso);
console.log(li.anioIngreso);
console.log(li.esTitular);
console.log(li.cargoColegio);
console.log(li.sueldoBruto);
}
<li id="li-@Model.TrabajoId" class="list-group-item"
onclick="EditTrabajoEnColegio(this)">
@Model.MesIngresoStJohns/@Model.AnioIngresoStJohns
-
@(Model.AnioEgresoStJohns != null ?
Model.MesEgresoStJohns.ToString() + "/" +
Model.AnioEgresoStJohns.ToString() : "Actualidad")
-
@Model.SedeNombre
Model.TipoDocenteId
Model.TieneContrato
@Model.CargoColegio
@Html.HiddenFor(x => x.TrabajoId)
@Html.HiddenFor(x => x.SedeId)
@Html.HiddenFor(x => x.AnioEgresoStJohns)
@Html.HiddenFor(x => x.AnioIngresoStJohns)
@Html.HiddenFor(x => x.MesIngresoStJohns)
@Html.HiddenFor(x => x.MesEgresoStJohns)
@Html.HiddenFor(x => x.FechaIngreso)
@Html.HiddenFor(x => x.FechaEgreso)
@Html.HiddenFor(x => x.SedeNombre)
@Html.HiddenFor(x => x.CargoColegio)
@Html.HiddenFor(x => x.TipoDocenteId)
@Html.HiddenFor(x => x.EsTitular)
@Html.HiddenFor(x => x.TieneContrato)
@Html.HiddenFor(x => x.SueldoBruto)
</li>
}
我们将不胜感激任何帮助。
您需要使用 javascript 或 jquery 函数,例如 find()
console.log(li.find("#TrabajoID").val());
或类似的东西:
$(li).find("ul").each(function( index ) {
console.log(($(this).text());
});
对于未来的读者,我能够解决它。
我所做的是,
JSON.parse('@Html.Raw(Json.Encode(型号))');
这让我可以传递定义的对象
并在 jquery
function EditTrabajoEnColegio(li) {
$("#CargoColegio").val(li.CargoColegio);
$("#SueldoBruto").val(li.SueldoBruto);
$("#AnioIngresoStJohns").val(li.AnioIngresoStJohns);
$("#MesIngresoStJohns").val(li.MesIngresoStJohns);
}
请注意,参数名称在 jquery 中无关紧要,它只是您从视图中获得的内容。
问题中你的要求不是很明确,但是你在javascript中所做的是错误的。
onclick="EditTrabajoEnColegio(this)"
这里this
指的是你用razor创建的li
对象。因此在函数 EditTrabajoEnColegio
li
对象中将存储您传递给 onclick
事件的 li
元素。因此,即使您从 console.log(li)
获得结果(它将打印整个 li 对象),它也不会显示 console.log(this.TrabajoId)
的任何值('TrabajoId' 不是 属性 li 对象,它是模型中的一个属性)。
也可以通过
访问模型数据var data = JSON.parse('@Html.Raw(Json.Encode(Model))');
您现在可以使用带有 data
变量的模型中的所有值,就像您使用普通的 Json 对象一样..