【发布时间】:2021-02-12 01:51:49
【问题描述】:
我正在尝试将一个附加参数传递给我的控制器。一切正常,只是我似乎无法获得第二个参数的值。
我的控制器需要以下两个参数:
public JsonResult GetProductList(string term, int manufacturerid)
我的自动完成编码如下:
$("#InternalProductNumber").catcomplete({
delay: 0,
min_length: 3,
source: '@Url.Action("GetProductList", "Proposal")',
data: {
term: $("#InternalProductNumber").val(),
manufacturerid: $("#ManufacturerId").val()
},
select: function (event, ui) {
$("#ProductId").val(ui.item.value);
$("#InternalProductNumber").val(ui.item.label);
$("#SellPrice").val(ui.item.sellprice);
return false;
}
});
Term 总是正确传入,但manufacturerid(它是一个下拉列表)总是为零。如果我在选择函数中放置一个警报,我会得到一个非零结果,告诉我我有一个值。
alert($("#ManufacturerId").val());
******* 编辑 *******
我按照建议添加了代码,现在看起来如下:
$("#InternalProductNumber").catcomplete({
delay: 0,
min_length: 3,
source: '@Url.Action("GetProductList", "Proposal")'+ `?manufacturerid=${$("#ManufacturerId").val()}`,
select: function (event, ui) {
alert('@Url.Action("GetProductList", "Proposal")' + `?manufacturerid=${$("#ManufacturerId").val()}`);
$("#ProductId").val(ui.item.value);
$("#InternalProductNumber").val(ui.item.label);
$("#SellPrice").val(ui.item.sellprice);
return false;
}
});
manufacturerid 参数仍然为 0。这是开发者选项中网络选项卡的结果。
我在选择后添加了警报只是为了仔细检查,我在警报中得到了正确的结果。
不知道从这里去哪里。我做错了什么?
谢谢。
-- 值
【问题讨论】:
-
我认为,因为您的后端需要整数
manufacturerid并且您将manufacturerid作为字符串传递,这就是您的参数被解析为 0 的原因。试试这个:manufacturerid: +$("#ManufacturerId").val()在您的 @987654332 @函数的data属性
标签: javascript jquery-ui-autocomplete