3
我有4個共享的EditorTemplates:Tab,Group,Line & Item。Html.TextBoxFor()不會生成任何html標記
Tab.cshtml:
@model AWMCCRM.Web.ViewModels.Tab
@Html.HiddenFor(vm => vm.Name)
<div id="[email protected](" ", string.Empty)" class="tab-content">
@Html.EditorFor(vm => vm.Groups)
</div>
Group.cshtml:
@model AWMCCRM.Web.ViewModels.Group
@Html.HiddenFor(vm => vm.Name)
<fieldset>
<legend>@Model.Name</legend>
@Html.EditorFor(vm => vm.Lines)
</fieldset>
Line.cshtml:
@model AWMCCRM.Web.ViewModels.Line
@Html.HiddenFor(vm => vm.Name)
@Html.EditorFor(vm => vm.Items)
Item.cshtml:
@model AWMCCRM.Web.ViewModels.Item
<div class="@Model.DivClass">
<p class="@Model.PClass">
Html.LabelFor(vm => vm.ValueString, Model.Name);
Html.TextBoxFor(vm => vm.ValueString);
</p>
</div>
通訊的ViewModels:
public class Tab
{
public string Name { get; set; }
public List<Group> Groups { get; set; }
}
public class Group
{
public string Name { get; set; }
public List<Line> Lines { get; set; }
}
public class Line
{
public string Name { get; set; }
public List<Item> Items { get; set; }
}
public class Item
{
public string Name { get; set; }
public string Description { get; set; }
public string ValueString { get; set; }
public string DivClass { get; set; }
public string PClass { get; set; }
}
在我的主要查看我有這樣的:
@Html.EditorFor(vm => vm.Tabs)
獲取生成看起來像這樣的代碼:
<div id="tab-Tab-1" class="tab-content">
<input id="Tabs_0__group_Name" name="Tabs[0].group.Name" type="hidden" value="Group0" />
<fieldset>
<legend>Group0</legend>
<input id="Tabs_0__group_line_Name" name="Tabs[0].group.line.Name" type="hidden" value="Line0" />
<div class="_20">
<p class="">
</p>
</div>
</fieldset>
</div>
正如您所看到的,div和p會生成,但沒有文本框或標籤。
我也曾在項目模板嘗試這樣做,而不是,但它沒有工作,要麼:
Html.TextBoxFor(vm => Model.ValueString);
任何想法,爲什麼或者我需要做什麼?
感謝
請確保該型號不爲空。 –
@UmairP,我剛剛檢查過兩次,Model不爲null。它有一個值,Model.ValueString也是。任何其他想法? – PostureOfLearning