Razor .NET不识别代码脚本
问题描述:
我在我的视图中有以下代码。在for
声明中,我想将父项div
中的每4项分组。 If(counter == 0)
,我渲染父母div
,然后我渲染四个项目,然后如果它是4个项目组的最后一个,我关闭父项div
。Razor .NET不识别代码脚本
但是,它看起来像剃须刀期待我关闭父母div
在第一个if
。看起来Razor不够聪明,知道父结束标记在第二行,如果下面的一些行,或者我失去了一些东西。任何想法来解决这个问题?
@{int counter = 0; }
@for (int i = 0; i < Model.UserManagedRoles.Count; i++){
string roleName = Model.UserManagedRoles[i].Name.Replace(" ", "").Trim();
string id = string.Format("chk{0}", roleName);
if (counter == 0)
{
<div class="rowCapture divUserRoles">
}
<div class="hzStackSmall">
<input type="checkbox" id="@id" name="@id" value="@roleName" />@Model.UserManagedRoles[i].Name</div>
if(counter == 3 || i == Model.UserManagedRoles.Count) {
</div>
}
counter++;
if (counter == 4)
{
counter = 0;
}
}
答
您必须使用@: <div class="hzStackSmall">
才能使用剃须刀引擎打印HTML代码。这会有帮助吗?
我强烈建议this来自ScottGu的博客关于剃须刀引擎的教程。
@{int counter = 0; }
@for (int i = 0; i < Model.UserManagedRoles.Count; i++)
{
string roleName = Model.UserManagedRoles[i].Name.Replace(" ", "").Trim();
string id = string.Format("chk{0}", roleName);
if (counter == 0)
{
@:<div class="rowCapture divUserRoles">
}
@:<div class="hzStackSmall">
@:<input type="checkbox" id="@id" name="@id" value="@roleName" />@Model.UserManagedRoles[i].Name</div>
if(counter == 3 || i == Model.UserManagedRoles.Count) {
@:</div>
}
counter++;
if (counter == 4)
{
counter = 0;
}
}
感谢它的工作。 – 2012-02-21 23:29:27
@tarkanboy,乐于帮助。你可以将我的回复(或任何其他)标记为答案吗? – 2012-02-21 23:33:56
@cacho - 这种情况经常发生。 – 2012-02-21 23:54:15