我有以下代码:
@{
var index=0;
}
@foreach (AdminSummary adminSummary in @Model.AdminSummaries) {
index++;
<div class="rep_tr0">
<div class="rep_td0">@adminSummary.RowKey</div>
<div class="rep_td0"><a href="/Administration/Products/Edit?&ac=@Model.Meta.AccountID&pr=@Model.Meta.ProductID&pa=@Model.Meta.PackageID&co=@adminSummary.RowKey">Edit</a></div>
<div class="rep_td0"><a href="/Administration/Products/Delete?&ac=@Model.Meta.AccountID&pr=@Model.Meta.ProductID&pa=@Model.Meta.PackageID&co=@adminSummary.RowKey">Delete</a></div>
<div class="rep_td0">@Html.TextBox("position_" index, @adminSummary.Position, new { size = 5 })</div>
<div class="rep_td0">@adminSummary.Title</div>
<div class="rep_td0">@adminSummary.DetailCount</div>
<div class="rep_td0">@adminSummary.Modified</div>
<div class="rep_td0">@adminSummary.ModifiedBy</div>
</div>
}
我正在尝试找到一种向位置名称添加索引值的好方法。
但是这一直给我一个错误:CS1026:)预期对于position_ on
的行有没有人知道我可能做错了什么?
更新
我尝试了以下内容:
<div class="rep_td0">@Html.TextBox("position_"@(index), @adminSummary.Position, new { size = 5 })</div>
这给出了错误:CS1646:在逐字说明符之后预期的关键字,标识符或字符串:@
答案 0 :(得分:3)
尝试
<div class="rep_td0">@Html.TextBox(string.Format("position_{0}", index), @adminSummary.Position, new { size = 5 })</div>
答案 1 :(得分:3)
<div class="rep_td0">@Html.TextBox("position_"+ index.ToString(), @adminSummary.Position, new { size = 5 })</div>
只需用上面的代替这一行。
答案 2 :(得分:1)
尝试将插入的剃刀包裹在()
中<a href="http://mystuff/@(Model.Object.Stuff)/Screen">Example</a>
此外,有时候如果你在一个剃刀块中,编译器要求你包装html,如果它是唯一的东西,如div标签,
<text><div class="rep_tr0"></text>
编辑:对不起,在索引++之后误解了一下这个问题
string textBoxId = "position_" + index;
THEN:
<div class="rep_td0">@Html.TextBox(@textBoxId, @adminSummary.Position, new { size = 5 })</div>
答案 3 :(得分:0)
很好,但是@foreach()
,请尝试使用@for()
,然后你的循环有自己的索引。