【发布时间】:2012-11-16 16:42:40
【问题描述】:
我有一个名为 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,例如可以按 5 次 Add Event Range 按钮。
事件视图:
@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”下
EventRange.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 部分视图没有显示任何内容。
有人知道我做错了什么吗?另外,如果这是绑定集合以发布表单的正确方法,是否有人有任何建议?
【问题讨论】:
标签: c# asp.net-mvc editorfor