【发布时间】:2014-06-19 03:10:02
【问题描述】:
我正在创建一个测验创建器模块。有5个科目。每个主题有 2000 个问题。
比如说,它叫做“创建完整模型测试”,它将包含 100 个问题,来自 5 个科目的 20 个问题。所以,20*5=100
在 UI 中,创建者将首先从下拉列表中选择“创建完整模型测试”。假设他选择“完整模型测试”。他必须在 5 个科目中选择一门,然后每个科目必须选择 20 个问题。然后必须将它们保存到“完整模型测试”部分中。
如果他选择英语,他必须选择 20 个问题,然后他必须选择另一个科目,例如物理,并且必须选择另外 20 个物理问题,然后他必须选择数学,然后将不得不选择另外 20 道数学题,依此类推。最后,表格将提交 100 个问题。
现在,我的问题是,如何将选定的问题自动保存到“完整模型测试”部分中,以便他可以在提交表单之前继续保存 5 个主题的问题。
这是我的部门模型:
namespace MvcBCS.Models
{
public class Department
{
[Key]
public int DepartmentId { get; set; }
public string DepartmentName { get; set; }
public string DepartmentCode { get; set; }
public virtual ICollection<Subject> Subject { get; set; }
public virtual ICollection<Section> Section { get; set; }
public virtual ICollection<Subsection> Subsection { get; set; }
}
}
这是我的主题模型:
namespace MvcBCS.Models
{
public class Subject
{
[Key]
public int SubjectId { get; set; }
public string SubjectName { get; set; }
public string SubjectCode { get; set; }
public int DepartmentId { get; set; }
public virtual Department Department { get; set; }
public virtual ICollection<Section> Section { get; set; }
}
}
这是截面模型:
namespace MvcBCS.Models
{
public class Section
{
[ForeignKey("Department")]
public int? DepartmentId { get; set; }
public virtual Department Department { get; set; }
[ForeignKey("Subject")]
public int? SubjectId { get; set; }
public virtual Subject Subject { get; set; }
[Key]
public int SectionId { get; set; }
public string SectionName { get; set; }
}
}
这是服从模型:
namespace MvcBCS.Models
{
public class Subsection
{
[ForeignKey("Department")]
public int? DepartmentId { get; set; }
public virtual Department Department { get; set; }
[ForeignKey("Subject")]
public int? SubjectId { get; set; }
public virtual Subject Subject { get; set; }
[ForeignKey("Section")]
public int? SectionId { get; set; }
public virtual Section Section { get; set; }
[Key]
public int SubsectionId { get; set; }
public string SubsectionName { get; set; }
public string SubsectionCode { get; set; }
}
}
【问题讨论】:
-
标题中有“自动保存”让我有点困惑。您的意思是要在完成科目时保存每个科目的 20 个问题,还是只是将所有这些问题作为已保存的完整表格的一部分?
-
看起来您有可以在客户端轻松复制的模型。所以你只需要在客户端保存主题之间的所有数据。
-
@krillgar 我想为每个主题保存 20 个问题。问题将使用 html 复选框属性选择,然后希望最终保存表单,以便使用单个提交按钮保存来自 5 个主题的 100 个问题。
-
@U10,我将能够解析问题,但我需要为每个主题选择 20 个问题,然后想使用单个提交表单保存 100 个问题。
-
如果您使用 JavaScript 存储数据,则不需要表单本身。当您通过 Ajax 发送数据时,它会自行创建表单。
标签: c# ajax asp.net-mvc-4 razor knockout.js