トレーニングのために人々を登録するために使用されるページがあります。現在のページには、登録する人を選択するためのドロップダウン、コースを選択するためのドロップダウン、およびコースが提供されるセッションを選択するためのドロップダウンがあります。ユーザーが一度に 1 人につき最大 4 つのクラスを登録できるように、コースとセッションのドロップダウンの 4 つのグループを持つようにページを変更することが要求されています。現在、フォームの投稿をどのように処理するかという問題が発生します。以前は、ユーザーがコースに人を追加しようとすると、エンティティ フレームワーク モデル バインドに既に登録されていたため、エラーがキャッチされ、エラー メッセージがフォームに返されていました。同時に評価して保存するインスタンスが 4 つあるため、このバインドを実装する方法がわかりません。私は 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);
}
}