我这样做是为了显示“清单”在我看来,使用CheckBoxFor
创建单独的CheckBoxFor:需要一个快速解决方案,每个枚举
@Html.LabelFor(m => m.MyEnum, T("Pick Your Poison"))
<div>
@for(int i = 0; i < Model.Alcohol.Count; i++)
{
<label>
@T(Model.Alcohol[i].Text)
@Html.CheckBoxFor(m => Model.Alcohol[i].Selected)
@Html.HiddenFor(m => Model.Alcohol[i].Value)
</label>
}
</div>
这是enum
我使用(只是为了清楚起见):
public enum MyEnum
{
Beer = 1,
Vodka = 2,
Rum = 3
}
This works。问题是我很难让@T
动态地翻译每个单独的项目。所以,我需要继续解决这个问题(这不容易解决 - 而不是这个问题的重点)。
我想要做的是单独输出每个项目,因此我可以将自己的文本应用于每个复选框项目(因此对每个项目执行@T("")
) - 这将起作用。
问题是我在CheckBoxFor
的视图中找不到任何现成的语法信息。
我想要做这样的事情在我看来:
@Html.LabelFor(m => m.MyEnum, T("Pick Your Poison"))
<div>
<label>
@T("Beer") <!--This will work-->
@Html.CheckBoxFor(m => Model.Alcohol.Beer) <!--Is this even right?-->
@Html.HiddenFor(m => Model.Alcohol.Beer) <!--Is this even right?-->
</label>
<label>
@T("Vodka")
@Html.CheckBoxFor(m => Model.Alcohol.Vodka)
@Html.HiddenFor(m => Model.Alcohol.Vodka)
</label>
<label>
@T("Rum")
@Html.CheckBoxFor(m => Model.Alcohol.Rum)
@Html.HiddenFor(m => Model.Alcohol.Rum)
</label>
}
</div>
是这样做可能吗?在CheckBoxFor
(我看到的所有示例只使用@for
循环)中单独列出项目的正确语法是什么。我只想继续尝试用@T
这种第一种方法来实现,这是一种翻译字符串的方法。
谢谢。
所以,你想创建一个组复选框,一个在每个枚举值? – asymptoticFault
是的,'@ for'循环处理这个问题,但是我使用我的'@ T'是因为它的运算生成 - 在构造视图之前'@ T'完成了它的工作。我想到一个解决方法是单独列出每个枚举/复选框。 – REMESQ
什么是T?它是一个定制的帮手吗? – asymptoticFault