【发布时间】:2019-03-01 15:11:48
【问题描述】:
我一直在寻找解决方案我有一个按钮功能
html
<button class="snipcart-add-item btn c8-bg c5-text" onclick="AddProduct(item.Id)">
@umbraco.library.GetDictionaryItem("USN Shop Add to Basket Listing")
</button>
item.id 有一个值,因为它在我试图绕过的原始代码中工作
java脚本是
function AddProduct(ptr) {
$('select').on('click', function () {
s.ajac({
url: '/CartSurface/ProductAddToCart',
data: "{'productId':ptr}",
}).done(function () {
alert('Added');
});
});
console.log("Button Pressed")
}
当在 console.log 中按下按钮时出现以下错误
Uncaught ReferenceError: item is not defined at HTMLButtonElement.onclick
控制器
public static void ProductAddToCart(int productId)
{
......
}
我想我错过了一些愚蠢的简单但我看不到它
Following 拥有 cmets
感谢自己已将代码更改为
function AddProduct(value) {
$('select').on("click", function () {
s.ajac({
url: '/IBDCartSurface/ProductAddToCart',
data: "{'productId': value}",
}).done(function () {
alert('Added');
});
});
console.log(value);
console.log("Button Pressed");
}
<button class="snipcart-add-item btn c8-bg c5-text" onclick="AddProduct(value)" value="@item.Id">
我在控制台中获得了值和“Button Pressed”消息,但是我的断点没有被触发并且警报 dosnt 被触发。
请问s.ajac和$.ajax有什么区别,除了后者找不到url。
请注意,我也更改了控制器中的控制器名称
【问题讨论】:
-
您必须在 onclick 事件中使用它之前定义“item”。另一方面,我现在不知道您使用的是哪个 Umbraco 版本,但我建议您使用
Umbraco.Field("#USN Shop Add to Basket Listing")来获取您的字典项目。
标签: javascript c# razor umbraco