jQuery中的Razor if语句追加

时间:2014-04-10 12:14:46

标签: jquery razor append

我试图在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中收到此错误:

  

只能将赋值调用增量递减和新对象表达式用作语句

我做错了什么?

2 个答案:

答案 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之前。