Javascript 将字母数字变量传递给JQuery Ajax

Javascript 将字母数字变量传递给JQuery Ajax,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有下面的JQuery代码,如果VendorDropDown.ClientID是整数,或者是可以转换为整数的字符串,那么它可以正常工作,但是如果我尝试使用像Microsoft这样的字符串值,它就会中断。PopulateSoftware函数是一个Asp.Net WebMethod,它接受一个名为vendorId的字符串参数 var pageUrl = '<%=ResolveUrl("~/Default.aspx")%>' function PopulateSoftwareDropdow

我有下面的JQuery代码,如果VendorDropDown.ClientID是整数,或者是可以转换为整数的字符串,那么它可以正常工作,但是如果我尝试使用像Microsoft这样的字符串值,它就会中断。PopulateSoftware函数是一个Asp.Net WebMethod,它接受一个名为vendorId的字符串参数

var pageUrl = '<%=ResolveUrl("~/Default.aspx")%>'
function PopulateSoftwareDropdown() {
    alert('{vendorId: ' + $('#<%=VendorDropDown.ClientID%>').val() + '}');
    $.ajax({    
        type: "POST",
        url: pageUrl + '/PopulateSoftware',
        data: '{vendorId: ' + $('#<%=VendorDropDown.ClientID%>').val() + '}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSoftwarePopulated,
        failure: function (response) {
            alert(response.d);
        }
    });
}
使用

这将有效地用单引号将值括起来,这意味着它是一个字符串值

更准确地说,应该是这样

data: {'vendorId': $('#<%=VendorDropDown.ClientID%>').val() }

这将作为数据传递我们创建的对象{..}部分,它将由jquery转换为正确的格式字符串

尝试使dropdownlist值json对类型字符串友好,并在值周围加引号。它实际上应该是双引号,如下所示:{vendorId:'+$.val+'}在实践中,两者都可以工作,但最好是安全的。@Nick,我认为整个数据不应该是字符串,但实际的键和值应该都是。。正在自动转换的值,因为传递的数据现在是实际对象。。
data: {'vendorId': $('#<%=VendorDropDown.ClientID%>').val() }