Javascript 中断脚本标记以运行C#循环
我正试图在C#应用程序中实现一个跟踪脚本,这让我有点为难。我需要循环购物车中的购物篮项目,但我不知道如何打破script标记,让C#loop进程循环,以便每个项目都可以迭代。下面的示例代码(我在中添加了注释,试图使其更清晰):Javascript 中断脚本标记以运行C#循环,javascript,c#,jquery,Javascript,C#,Jquery,我正试图在C#应用程序中实现一个跟踪脚本,这让我有点为难。我需要循环购物车中的购物篮项目,但我不知道如何打破script标记,让C#loop进程循环,以便每个项目都可以迭代。下面的示例代码(我在中添加了注释,试图使其更清晰): @if(Model!=null) { $(函数(){//启动JAVASCRIPT) log('票证类型:@Model.BasketItems[i].Name'); log('Price:@Model.BasketItems[i].Price'); log('Quantit
@if(Model!=null)
{
$(函数(){//启动JAVASCRIPT)
log('票证类型:@Model.BasketItems[i].Name');
log('Price:@Model.BasketItems[i].Price');
log('Quantity:@Model.BasketItems[i].Quantity');
数据层推送({
“事件”:“日历签出”,
“电子商务”:{
“细节”:{
'products':[//结束JAVASCRIPT
//启动C#循环
@对于(var i=0;i0)
{
{//中断C#循环
//JAVASCRIPT
'name':'@Model.BasketItems[i].name',
“id”:“,
'价格':'@Model.BasketItems[i].价格',
“品牌”:一些品牌,
“数量”:“@Model.BasketItems[i]。数量”
},
//结束JAVASCRIPT。完成下面的C#循环
}
}
//完成C#环
//启动JAVASCRIPT
]
}
}
});
});//完成JAVASCRIPT
}
如有任何关于如何实现这一目标的指导,将不胜感激。目前,由于类似的语法,C#循环项被错误地呈现为JS
谢谢,
标记。我将序列化整个json,而不是尝试在循环中生成json
var products=@Html.Raw(JsonConvert.SerializeObject(Model.BasketItems.Where(i=>i.Quantity>0));
您也可以在循环中使用
标记,但我不确定razor html解析器是否能够完美地处理嵌套在脚本中的标记
if(Model.BasketItems[i].数量>0)
{
....
}
当你需要这样的评论时,是时候认真反思了。这是一个很强的指标,对不起。我应该更直接一点。这很糟糕。别再做了。
@if (Model != null)
{
<script>
$(function () { // START JAVASCRIPT
console.log('Ticket type: @Model.BasketItems[i].Name');
console.log('Price: @Model.BasketItems[i].Price');
console.log('Quantity: @Model.BasketItems[i].Quantity');
dataLayer.push({
'event': 'calendarCheckout',
'ecommerce': {
'detail': {
'products': [ // END JAVASCRIPT
// START C# LOOP
@for (var i = 0; i < Model.BasketItems.Count; i++)
{
if (Model.BasketItems[i].Quantity > 0)
{
{ // BREAK C# LOOP
// JAVASCRIPT
'name': '@Model.BasketItems[i].Name',
'id': '',
'price': '@Model.BasketItems[i].Price',
'brand': 'Some Brand',
'quantity': '@Model.BasketItems[i].Quantity'
},
// END JAVASCRIPT. FINISH C# LOOP BELOW
}
}
// FINISH C# LOOP
// START JAVASCRIPT
]
}
}
});
});// FINISH JAVASCRIPT
</script>
}