我这样做是为了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
}
这行得通。问题是我很难@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
一种方法,即翻译字符串的方法。
谢谢。