Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Razor视图中的对象获取值到Javascript/Jquery_Jquery_.net_Asp.net Mvc 4_Razor - Fatal编程技术网

从Razor视图中的对象获取值到Javascript/Jquery

从Razor视图中的对象获取值到Javascript/Jquery,jquery,.net,asp.net-mvc-4,razor,Jquery,.net,Asp.net Mvc 4,Razor,在我看来,我有下面的代码,它是从一个对象加载属性的,当我运行我的项目时,它显示得很好。。 但是,如何在Jquery中访问该对象的属性?目前,我从console.logs获取的内容尚未定义 编辑:我尝试将@Html.Raw(Json.Encode(Model))添加到我的视图中,现在当我在Html中点击inspect时,我可以看到对象的每个道具,但我仍然无法在jquery中访问它们 功能编辑Trabajoencologio(li){ console.log(li);//这将在控制台中显示整个l

在我看来,我有下面的代码,它是从一个对象加载属性的,当我运行我的项目时,它显示得很好。。 但是,如何在Jquery中访问该对象的属性?目前,我从console.logs获取的内容尚未定义

编辑:我尝试将@Html.Raw(Json.Encode(Model))添加到我的视图中,现在当我在Html中点击inspect时,我可以看到对象的每个道具,但我仍然无法在jquery中访问它们


功能编辑Trabajoencologio(li){
console.log(li);//这将在控制台中显示整个li。
//从这里,我得到的都是未定义的
console.log(this.TrabajoId);
控制台日志(li.contrato);
控制台日志(li.mesingero);
console.log(li.anioIngreso);
控制台日志(li.esTitular);
控制台日志(li.cargoColegio);
console.log(li.sueldoBruto);
}
  • @Model.mesingrostjohns//@Model.anioingrestjohns - @(Model.anioegrestojohns!=null? Model.mesegrestostjohns.ToString()+“/”+ Model.anioegrestostjohns.ToString():“Actualidad”) - @模型:SedeNombre Model.TipoDocenteId 型号:TieneContrato @卡哥特科莱吉奥模型酒店 @Html.HiddenFor(x=>x.TrabajoId) @Html.HiddenFor(x=>x.SedeId) @HiddenFor(x=>x.anioegrestjohns) @Html.HiddenFor(x=>x.anioingrestojohns) @Html.HiddenFor(x=>x.mesingrostjohns) @Html.HiddenFor(x=>x.mesegrestostjohns) @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)

  • }
    您需要使用javascript或jquery函数,如find()

    或者类似于:

    $(li).find("ul").each(function( index ) {
        console.log(($(this).text());
     });
    

    您需要使用javascript或jquery函数,如find()

    或者类似于:

    $(li).find("ul").each(function( index ) {
        console.log(($(this).text());
     });
    

    对未来的读者来说,我能够解决这个问题

    我所做的是

    parse('@Html.Raw(JSON.Encode(Model)));

    这允许我传递已定义的对象

    在jquery中

    function EditTrabajoEnColegio(li) {
    $("#CargoColegio").val(li.CargoColegio);
    $("#SueldoBruto").val(li.SueldoBruto);
    $("#AnioIngresoStJohns").val(li.AnioIngresoStJohns);
    $("#MesIngresoStJohns").val(li.MesIngresoStJohns);
    }
    

    请注意,参数的名称在jquery中并不重要,它只是从视图中获取的内容。

    对于未来的读者,我能够解决它

    我所做的是

    parse('@Html.Raw(JSON.Encode(Model)));

    这允许我传递已定义的对象

    在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)"
    
    这里
    这个
    指的是你用razor创建的
    li
    对象。因此,在函数
    edittrabajoencologio
    中,li
    对象将存储你传递的
    li
    元素
    onclick
    事件。因此,即使你从
    控制台.log(li)
    得到一个结果(它将打印整个li对象),它不会向
    console.log(this.TrabajoId)
    (TrabajoId不是li对象的属性,它是模型中的属性)

    也可以通过以下方式访问模型数据:

    var data = JSON.parse('@Html.Raw(Json.Encode(Model))');
    

    您现在可以使用
    数据
    变量处理模型中的所有值,就像使用普通Json对象一样。

    您的要求在问题中不是很清楚,但是您在javascript中所做的是错误的

    onclick="EditTrabajoEnColegio(this)"
    
    这里
    这个
    指的是你用razor创建的
    li
    对象。因此,在函数
    edittrabajoencologio
    中,li
    对象将存储你传递的
    li
    元素
    onclick
    事件。因此,即使你从
    控制台.log(li)
    得到一个结果(它将打印整个li对象),它不会向
    console.log(this.TrabajoId)
    (TrabajoId不是li对象的属性,它是模型中的属性)

    也可以通过以下方式访问模型数据:

    var data = JSON.parse('@Html.Raw(Json.Encode(Model))');
    

    现在,您可以使用
    数据
    变量来处理模型中的所有值,就像使用普通Json对象一样。

    我得到了未捕获的类型错误:li.find不是htmlilement.onclick(119d6359-540b-4327-97af-7939b6a70a3f:536)上的edittrabajoencologio(PersonaEdit.js:331)的函数。哦,用$(li)替换li.find(#contracto)。find(“#contato”)我在每种情况下都没有定义。例如,我刚刚尝试了console.log($(li).find(“#SedeNombre”).val());但是没有定义等等,你甚至在使用jquery吗?如果没有,你可能想使用findElementByID()。是的,我在使用jquery。我得到了未捕获的类型错误:li.find不是EditTrabajoencoligo的函数(PersonaEdit.js:331)在htmlilement.onclick(119d6359-540b-4327-97af-7939b6a70a3f:536)哦,用$(li)替换li.find(“#contracto”)。find(#contracto“)我在每种情况下都没有定义。例如,我刚刚尝试了console.log($(li)。find(#SedeNombre”).val();但是没有定义等等,你甚至在使用jquery吗?如果没有,你可能想使用findElementByID()。是的,我在使用jquery。我昨天也得出了类似的结论(见我自己的答案),但我使用了var data=@Html.Raw(Json.Encode(Model));而不是JSON.parse..可以吗,或者我也需要使用JSON parse?根据w3schools的说法,jsonparse是最佳做法。感谢您提供的信息。
    JSON.Encode()
    将对象转换为JSON格式的字符串,
    Html.Raw()
    将返回未编码的字符串。使用
    JSON.parse