我有一个名为 Events 的模型类和一个名为 EventRange 的模型类:
public class Event
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<EventRange> RangesCollection { get; set; }
}
public class EventRange
{
public int Id { get; set; }
public string RangeName { get; set; }
public string RangeDescription { get; set; }
public int Capacitiy { get; set; }
}
如您所见,Event 类包含一个 List,其中包含尽可能多的 EventRanges,用户应该能够添加许多 EventRanges。
我创建了一个名为 events 的视图,它动态地为 evenrange 附加一个局部视图。例如,如果用户想要保存 5 个 EventRanges,他可以按下 Add Event Range 按钮 5 次。
事件视图:
@using (Ajax.BeginForm("CreateEvent", "Events", new AjaxOptions { HttpMethod = "POST" }, new { @class = "mainForm" }))
{
@*Event data:*@
@Html.LabelFor(m => m.Name)@Html.TextBoxFor(m => m.Name)
@Html.LabelFor(m => m.Description)@Html.TextBoxFor(m => m.Description)
@*EventRange data:*@
<div id="EventRangediv">
@Html.EditorFor(m => m.RangesCollection)
</div>
}
事件范围的部分视图保存在“~/views/events/EditorTemplates/EventRange.cshtml”下
事件范围.cshtml:
@model fanaticksMain.Models.EventRange
@Html.HiddenFor(m => m.Id)
@Html.DisplayFor(m => m.RangeName)
@Html.LabelFor(m => m.RangeName)@Html.TextBoxFor(m => m.RangeName)
@Html.LabelFor(m => m.RangeDescription)@Html.TextBoxFor(m => m.RangeDescription)
但是,加载事件视图不会从局部视图加载任何元素,事件名称和描述的标签和文本框工作。但是 eventrange 部分视图没有显示任何内容。
有人知道我做错了什么吗?另外,如果这是绑定集合以发布表单的正确方法,是否有人有任何建议?