POCOアプローチを使用してアイテムに画像を追加したい. すべてが機能するためには、ビュー/コントローラーを変更する必要があります。
アイテム
namespace POCOExample.Models
{
public class Item
{
public int ID { get; set; }
public string Name { get; set; }
public string Info { get; set; }
public List<Image> Images { get; set; }
}
}
画像
namespace POCOExample.Models
{
public class Image
{
public int ID { get; set; }
public int ItemID { get; set; }
public Item Item { get; set; }
public string FileName { get; set; }
}
}
コントローラーの作成 (POST) アクション
[HttpPost]
public ActionResult Create(Item item, List<HttpPostedFileBase> iamges)
{
if (ModelState.IsValid)
{
// Added code START
foreach (var image in images)
{
item.Images.Add(new Image {
FileName = Infrastructure.Image.Upload(image) // Returns file name, just what I need
});
}
// Added code END
db.Items.Add(item);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(item);
}
質問
このコードは機能しますが、これが最も最適な/正しい方法であるかどうか疑問に思いますか?