我有一个模型,我正在使用从数据库中呈现模型的索引,并给出了一些可能需要空间的行的显示名称(即“数据库中的”weekstarting“将被给予显示“星期开始”的名称)。与@ Html.LabelFor和W3C Validator冲突?
所以我为我的模型是这样设置的显示名称:
[DisplayName("Week Starting")]
public DateTime WeekStarting { get; set; }
,然后在我的表我用下面的代码行中使用其给定的显示名称显示的字段名称的表头:
@Html.LabelFor(x => x.First().WeekStarting)
以上所有工作正常。但我使用的是W3C验证程序,它给了我给出的例子,我给了以下错误:
标签元素的for属性必须引用窗体控件。
原谅我,如果这是显而易见的,但我在这里做错了什么?我没有使用表格,我只是在表格中显示项目索引。我试图寻找答案,并看到有人建议表单控件被引用需要id(即使我没有使用表单),但这不适用于这种情况,因为如果我试图设置一个id在它将与每个项目在索引中被复制的指数:
foreach (var item in Model.Tbms)
{
<tr><td>@item.value</td><tr>.... would be repeated for each item, and also unsure where I would put the id in any case, the td?
}
还是有更好的方式来标记字段标题,我的首选显示的名字摆在首位?我想我可以交换@ Html.LabelFor ...为硬代码字段名称,但我必须?
感谢tvanfosson,会给它一个尝试 – DevDave
请注意,如果你想要的话,你可以让它实际生成'TH',我想这个名字会更加合适。在这种情况下,您只需使用TagBuilder构造'TH'并添加'headerText'作为标记的InnerText。不过,签名可能需要更改为接受HTML属性,然后您必须添加代码来处理它们。请参阅http://codeplex.com/aspnet上的MVC源代码,了解如何使其工作。 – tvanfosson