2013-11-22 35 views
1

我嘗試將剃鬚刀值發送給jquery funcion。如何將剃刀視圖模態屬性值傳遞給javascript函數

查看:

@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,但我有同樣的結果:undifined

+0

而且確實'@Model .ServicosID'實際上在你的視圖模型中有一個值? – musefan

+0

是的,有價值。我多次使用它 – CesarMiguel

+0

查看HTML頁面的源代碼(在瀏覽器中),找到onchange屬性。它是什麼樣子的? – musefan

回答

4

你得到的原因ting undefined(假設value是一個字符串)是因爲你需要將@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); 
     } 
    }); 

}); 
相關問題