這是我一個頁面,是在VS2019的.net core專案
我是用VUE實做出來
商品頁面是在一個HTML裡
而最上面標題跟購物車圖示則是在layout裡
大概像這樣
前端程式碼如下
<div class="row" id="app">
<div class="col" v-for="(item , index) in list" :key="item.id">
<div class="card" style="width: 20rem;">
<img class="card-img-top" :src="item.photoUrl">
<div class="card-block">
<h4 class="card-title">{{item.name}}</h4>
<p class="card-text">{{item.price}}</p>
<a href="#" :id="item.id" data-price="0.5" class="add-to-cart btn btn-primary">Add to cart</a>
</div>
</div>
</div>
</div>
Vue.createApp({
data() {
return {
list: [],
message: 'Hello Vue!!'
}
},
mounted() {
axios .get('https://localhost:44379/Customers/ShoppingProductApi/Index')
.then((response => { (this.list = response.data); console.log(response.data)}))
.catch(function (error) {
console.log(error);
});
},
}).mount('#app')
目前遇到一個問題
就是我要怎麼做才能按下add-to-cart時自動加入購物車呢?
如果是純JS的話我可能會在按鈕那裡加個
onclick="AddToCart(id)"
id就razor語法所產生的id
然後在layout頁面那裡實作方法
VUE的話我暫時沒想法
我找到的範例都是在同一個頁面不是像我這樣分開
我目前暫時是引入CDN
不知道這樣有辦法用VUE處理嗎?
把事件綁上去 在methods加上你的function應該就可以執行了
<a href="#" :id="item.id" data-price="0.5" class="add-to-cart btn btn-primary" @click="AddToCart(item.id)">Add to cart</a>