以下是我的ASP.NET站点上的一些代码。我最初想写
if((n%4)==0) {
<div>
}
//code
if((n%4)==0) {
</div>
}
但ASP.NET不会拥有它。它有一个编译错误。在我关闭}
之前,它似乎会忽略div
。所以我最终得到了以下内容。 if语句给我带来了同样的问题。我知道我可以通过写class="@(cond?"val":"")"
来有条件地拥有价值观,但这只适用于我不喜欢的价值观
知道如何在那里有条件地拥有checked
。写了4次相同的行是非常荒谬的,我怎么写这个呢?
<div>
@for (int i = 1, n = 0; i < 32; i <<= 1, ++n)
{
if ((looking & i) != 0)
{
<input type="checkbox" name="SomeName" value="@i" id="SomeName_@i" checked>
}
else
{
<input type="checkbox" name="SomeName" value="@i" id="SomeName_@i">
}
<label for="SomeName_@i">@TestApp.Controllers.HomeController.enumFriendlyName[n]</label><br />
}
</div>
<div>
@for (int i = 32, n = 4; i < 256; i <<= 1, ++n)
{
if ((looking & i) != 0)
{
<input type="checkbox" name="SomeName" value="@i" id="SomeName_@i" checked>
}
else
{
<input type="checkbox" name="SomeName" value="@i" id="SomeName_@i">
}
<label for="SomeName_@i">@TestApp.Controllers.HomeController.enumFriendlyName[n]</label><br />
}
</div>
答案 0 :(得分:1)
我假设你在这里谈论剃刀。我将从属性开始..诀窍是使用html助手而不是手工编写html。
@Html.Label("Name", "LabelText")
@Html.CheckBox("Name", isChecked)
此外,对于CheckBox和其他助手,您可以传递和htmlAttributes anon函数,如果您为该属性指定的值evals为null,则该属性将不会包含在呈现的html中。
你在做什么?也许如果你告诉我们你想做什么,我们可以提出一些建议。您是否尝试使用条纹,因为您可以使用CSS。
因此,您可以使用partial作为每个div的内容而不是代码重复:
<div class="left">
@Html.Partial(_controls, model)
</div>
<div class="right">
@Html.Partial(_controls, model)
</div>
或者其他什么。我可能有错误的语法,但基本上你可以将模型传递给你可以包含你想要的项目范围的部分。
模型可以像new { start = 1, finish = 32 }