foreach循环中的变量导致部分视图无法渲染

时间:2013-12-10 16:51:21

标签: c# asp.net-mvc asp.net-mvc-3 razor

我在显示AJAX链接的页面上有部分视图。我试图让网格中的按钮名称唯一,但是当我实现代码时,它会导致局部视图不呈现...

在局部视图(渲染)中:

@foreach (var ht in Model)
{
    <div class="row">
        <div class="four columns alpha">
            @ht.Value
        </div>
        <div class="three columns omega">        
            <input type="button" value="delete" id="btnDelete" />
        </div>
    </div>
}

在局部视图中(不渲染)

@foreach (var ht in Model)
{
    @{ var buttonName = "btnDeleteCampaign" & @ht.Id; }
    <div class="row">
        <div class="four columns alpha">
            @ht.Value
        </div>
        <div class="three columns omega">        
            <input type="button" value="delete" id="@buttonName" />
        </div>
    </div>
}

第二个块的哪个部分保持部分视图不被渲染,我如何实现目标?

3 个答案:

答案 0 :(得分:3)

您不需要@{并连接字符串,请使用+

@foreach (var ht in Model)
{
    var buttonName = "btnDeleteCampaign" + @ht.Id;
}

答案 1 :(得分:0)

尝试初始化buttonName

@{var buttonName = "btnDeleteCampaign" + ht.id}

答案 2 :(得分:0)

您无法使用&在C#中连接字符串。像这样初始化您的buttonName变量:

var buttonName = "btnDeleteCampaign" + ht.Id