VBScript 参数未从字典中获取匹配值

VBScript Parameter not getting matching value from Dictionary

词典不是 return 匹配我从 JavaScript 函数传递的 VB 脚本函数参数的值。

Javascript 将 prodid 值成功传递给 Vb 脚本函数,我也在 VB 脚本函数中读取了它,但是当我尝试从字典中获取值时,它 return没什么。

例如,如果我传递 prodid=1,然后它会被分配给 ProdcutId,但它不会从字典中获取 ProductId=1 的匹配值。 但我对 ProductId="1" 进行了硬编码,然后它将 return 来自字典的匹配值 apple。 当我在 GetProdcutName 中打印 ProductId 值时,它显示正确的值“1”。

经典ASP:

Public Function GetProductName(prodid)
  Dim ProductId 
  Dim ProductName 
  ProductId = prodid
  Dim dictproduct
  Set dictproduct=Server.CreateObject("Scripting.Dictionary")

  dictproduct.add "1","apple"
  dictproduct.add "2","Samsung"
  dictproduct.add "3","Blackberry"

  ProductName =dictproduct.Item(ProductId)
  GetProdcutName =ProductName 
End function

JavaScript:

function ProductName()
{
  var prodcutid=document.getElementById('prodcutList').value ;      
  var productname ='<%=GetYodleeProviderCode("' + prodcutid + '")%>';
}

修复您发布的代码中的拼写错误(产品的拼写)后,将 prodid 强制为字符串应该可以解决您的问题:ProductId = CStr(prodid)。这应该等同于您将 1 硬编码为“1”时的尝试。

Public Function GetProductName(p_iProdId)
  Dim sProductId
  Dim sProductName

  sProductId = "P" & Trim(CStr(p_iProdId))

  Dim dictProducts
  Set dictProducts = Server.CreateObject("Scripting.Dictionary")

  dictProducts.Add "P1", "apple"
  dictProducts.Add "P2", "Samsung"
  dictProducts.Add "P3", "Blackberry"

  sProductName = dictProducts.Item(sProductId)

  GetProductName = sProductName

End Function

您在分配 return 值时似乎拼错了函数名称("c" 和 "u" 颠倒了)。应该是:

GetProductName = ProductName