ユーザーがアイテムを検索して詳細をアイテムに追加できる検索ページがあります。私は、ユーザーが同じ詳細を複数のアイテムに適用できるように取り組んでいます。ユーザーは、同じ変更を適用するすべての項目をチェックして、Comment
ボタンをクリックします。これにより、チェックされたアイテムとクリックされた特定のアイテムのリストが送信List<int> ids
されます(既に存在する場合はテンプレートとして使用します)int id
。
ここから、ユーザーはコメントを好きなように編集して保存します。HttpPost Edit
アクションはどのように見えますか?そのアイテムにコメントがまだ存在しない場合はデータベースにコメントを追加する必要があります。そうでない場合は、存在するものを上書きします。以下は私が思いついたものです(基本的な概要)。これで私が目にする問題は、変更を適用するすべてのアイテムについてデータベースをポークする必要があることです。これを行うには、より良い方法が必要です。
[HttpPost]
public ActionResult Edit(CommentVM model)
{
if (ModelState.IsValid)
{
foreach(int i in model.ids)
{
Comment comment = _db.Comments.Find(i);
if(comment == null){
//Create and add
{
else{
comment.Text = model.Text;
_db.Entry(comment).State = EntityState.Modified;
}
}
_db.SaveChanges();
return RedirectToAction("Index");
}
return View(model);
}