gpt4 book ai didi

c# - IEnumerable 的 MVC3 编辑器模板不会在 @Html.LabelFor 中生成 'for' 属性

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:29 25 4
gpt4 key购买 nike

我为我的 ViewModel 定制了 EditorTemplate类(它生成一个复选框列表)。

鉴于我的模型是IEnumerable<ViewModel> , 但当我调用 @Html.EditorForModel()在生成的 HTML 中 for label 的属性标签为空。

当我只想渲染一个复选框时一切正常。

public class StateViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public bool Checked { get; set; }
}

编辑器模板:

@model Mcs.Sibs.UI.Web.Models.StateViewModel

@Html.HiddenFor(x => x.Id)
<div>
@Html.CheckBoxFor(x => x.Checked)
@Html.LabelFor(x => x.Checked, Model.Name)
</div>

我的看法:

@model IEnumerable<Mcs.Sibs.UI.Web.Models.StateViewModel>
@using (Html.BeginForm()
{
@Html.EditorForModel()
}

生成的 HTML 看起来像这样(对于一个复选框):

<input type="hidden" value="1" name="[0].Id" data-val-required="The Id field is    required." data-val-number="The field Id must be a number." data-val="true">
<div>
<input type="checkbox" value="true" name="[0].Checked" data-val-required="The Checked field is required." data-val="true">
<input type="hidden" value="false" name="[0].Checked">
<label for="">Checkbox label</label>

您可以看到“for”属性为空。我做错了什么或者这是 MVC3 默认中的某种错误 EditorTemplate对于 IEnumerable<T>

最佳答案

试试这个:

@Html.EditorFor(model => model)

关于c# - IEnumerable 的 MVC3 编辑器模板不会在 @Html.LabelFor 中生成 'for' 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6915117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com