我有一个用于注册人员进行培训的页面。当前页面上有三个下拉菜单,一个用于选择要注册的人,一个用于选择课程,另一个用于选择课程提供的课程。要求将页面修改为现在有四组课程和会话下拉菜单,以允许用户一次最多为一个人注册四个班级。我的问题出现在如何处理表单发布现在。如果用户尝试将某人添加到课程中,那么他们已经注册了Entity Framework模型绑定将捕获错误并将错误消息发送回表单。我现在不确定如何实现此绑定,因为有四个实例可以同时进行评估和保存。我是MVC和EF的新手,所以任何帮助/方向都会非常感激。
编辑:下面是一个原始控制器保存功能:
var AddToCourse = new Session_Registrant()
{
RegistrantID = RegistrantID,
SessionID = Session1,
RegistrantOrg = regOrg,
RegistrantTitle = title,
RegistedDate = DateTime.Now
};
//attempt to save
try
{
if (ModelState.IsValid)
{
db.AddToSession_Registrant(AddToCourse);
db.SaveChanges();
}
}
catch (DataException error)
{
if (error.InnerException != null)
{
if (error.InnerException.Message.Contains("UNIQUE KEY constraint"))
{
//adding custom error message to explain the failure
ModelState.AddModelError("", "Error! Registrant has already been added to this course session.");
}
}
else
{
ModelState.AddModelError("Error", error.Message);
}
}
答案 0 :(得分:1)
我想知道问题是否与函数的设计有关而不是实现。是否应根据注册人实体与课程/会话实体之间的一对多关系来定义问题。
我也认为使用异常作为设计的一部分是不好的做法,这是一个定义问题。你(你的代码)应该问这样的问题:
换句话说,定义您的业务规则,实现它们,问题应该自行解决为SMOC(编码的小问题)。
我很抱歉,如果这个回复没有更直接的帮助,但我觉得这是错误的起点。祝你好运。