我试图在jQuery追加中使用razor语句。
这是我的代码:
$('#Ctabs1-pane' + index + '').append('<br /><br /><br /><div id="buttonDiv' + index + '" class="col-lg-12" style="text-align:center"><legend></legend><div class="btn-group">'
+ '<button type="button" class="btn btn-default" onClick="downloadPDF(' + index + ')"><i class="glyphicon glyphicon-download-alt"></i> PDF</button>'
+ '<button type="button" class="btn btn-default" onClick="saveData(' + index + ')"><i class="glyphicon glyphicon-ok"></i> Spara</button>'
+ '<button type="button" class="btn btn-danger"><i class="glyphicon glyphicon-remove"></i> Neka</button>'
+ '<button type="button" class="btn btn-success" onClick="confirmService(' + index + ')"><i class="glyphicon glyphicon-ok"></i> Klarrapportera</button>'
@if(!Model.StatusUpdates.Where(x => x.Status == 3).Any()) {
+ '<button type="button" class="btn btn-info" onClick="confirmService(' + index + ')"><i class="glyphicon glyphicon-ok"></i> Klarrapportera</button>'
}
+ '</div></div></div>');
在<'<button .....'
行上的我在Visual Studio中收到此错误:
只能将赋值调用增量递减和新对象表达式用作语句
我做错了什么?
答案 0 :(得分:0)
为什么不创建一个模板,这样你就不必处理这个字符串串联混乱..
<script id="pane-append" type="text/template">
<br /><br /><br />
<div id="buttonDiv{{index}}" class="col-lg-12" style="text-align:center">
<legend></legend>
<div class="btn-group">
<button type="button" class="btn btn-default" onClick="downloadPDF({{index}})">
<i class="glyphicon glyphicon-download-alt"></i> PDF
</button>
<button type="button" class="btn btn-default" onClick="saveData({{index}})">
<i class="glyphicon glyphicon-ok"></i> Spara
</button>
<button type="button" class="btn btn-danger">
<i class="glyphicon glyphicon-remove"></i> Neka
</button>
<button type="button" class="btn btn-success" onClick="confirmService({{index}})">
<i class="glyphicon glyphicon-ok"></i> Klarrapportera
</button>
@if(!Model.StatusUpdates.Where(x => x.Status == 3).Any()) {
<button type="button" class="btn btn-info" onClick="confirmService({{index}})">
<i class="glyphicon glyphicon-ok"></i> Klarrapportera
</button>
}
</div>
</div>
</script>
(通过这种方式你会发现你在那里有一个额外的</div>
)
并在您的代码中执行一次
var template = $('#pane-append').html();
当你想做附加做
$('#Ctabs1-pane' + index).append( template.replace(/{{index}}/gi, index) );
http://jsfiddle.net/xU87d/的演示( razor在演示中不起作用)
答案 1 :(得分:0)
它对我有用的方法是在jquery里面放一个@:在每行jquery之前。