gpt4 book ai didi

c# - 如何将 Razor View 模态属性值传递给 JavaScript 函数

转载 作者:太空宇宙 更新时间:2023-11-03 20:10:53 24 4
gpt4 key购买 nike

我尝试将 Razor 值发送到 jquery 函数。

查看:

@Html.TextBoxFor(model => model.NumTransportado, new { @class = "form-control input-sm", id = "NumTransResp" + Model.ServicosID + "", name = "NumTransResp" + Model.ServicosID + "", onchange = "PreencheDadosVendedor(this, 3, " + @Model.ServicosID + ")" })

我可以使用所有参数,除了 "+ @Model.ServicosID + "

Js文件:

function PreencheDadosVendedor(idVend, tipoFuncionario, idServicoEdicao) {
$.getJSON("/Contrato/getDadosVendedor", { id: $(idVend).val(), tipoFuncionario: tipoFuncionario },
function (result) {
switch (tipoFuncionario) {
case 1:
$("#NomeVendedor_Contrato").val(result.NomeVendedor);
case 2:
$("#NomeTransResponsavel").val(result.NomeVendedor);
case 3:
$("#NomeTransResponsavel_" + idServicoEdicao + "").val(result.NomeVendedor);
}
});
}

我尝试做 idSericoEdicao 是我的 @Model.ServicosID,但我有相同的结果:未定义

最佳答案

你得到未定义的原因(假设值是一个字符串)是因为你需要将 @Model.ServicosID 用引号引起来,否则它会寻找属性的值作为名称的变量,相反,您只需要将值作为字符串传递即可。

试试这个:-

@Html.TextBoxFor(model => model.NumTransportado, 
new { @class = "form-control input-sm",
id = "NumTransResp" + Model.ServicosID + "",
name = "NumTransResp" + Model.ServicosID + "",
onchange = "PreencheDadosVendedor(this, 3, '" + @Model.ServicosID + "')" });
^____ ^____

或者最好这样做,而不是添加 onchange 属性;附加一个事件并使用 data-* 属性来存储元素特定的值,这样你就可以分离出 html 和 js:

即:

@Html.TextBoxFor(model => model.NumTransportado, 
new { @class = "form-control input-sm myclass", //Add a class
id = "NumTransResp" + Model.ServicosID + "",
data_tipoFuncionario = 3, //Add a data attribute
name = "NumTransResp" + Model.ServicosID + ""});

$('.myclass').change(function(e){
var idServicoEdicao = this.id.replace("NumTransResp",""), //get the part from its own id
tipoFuncionario = $(this).data("tipoFuncionario"); //get the value from data attribute

$.getJSON("/Contrato/getDadosVendedor", { id: this.value, tipoFuncionario: tipoFuncionario },
function (result) {
switch (tipoFuncionario) {
case 1:
$("#NomeVendedor_Contrato").val(result.NomeVendedor);
case 2:
$("#NomeTransResponsavel").val(result.NomeVendedor);
case 3:
$("#NomeTransResponsavel_" + idServicoEdicao).val(result.NomeVendedor);
}
});

});

关于c# - 如何将 Razor View 模态属性值传递给 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20141205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com