我有一个关于查看模型和向数据库添加信息的问题。
假设我有这两个类:
public class Ad {
public int Id { get; set; }
public int CategoryId { get; set; }
public string Headline { get; set; }
public string Text { get; set; }
public int Type { get; set; }
public Category Category { get; set; }
}
public class Category {
public int CategoryId { get; set; }
public int CategoryName { get; set; }
public IColletion<Ad> Ads { get; set; }
}
Context class:
public DbSet<Ad> Ads { get; set; }
public DbSet<Category> Categories { get; set; }
这些模型确实过于简单,但我只想了解上下文。假设我想为应该向数据库添加条目的视图创建一个视图模型。如何从视图模型向“广告”数据库表添加信息。假设视图模型看起来像:
namespace Website.Models
{
public class CreateViewModel
{
public Ad Ad { get; set; }
public ICollection<Categories> Categories { get; set; }
public Dictionary<int, string> AdTypes { get; set; }
public CreateViewModel()
{
// to populate a dropdown on the "Create" page
this.Adtypes= new Dictionary<int, string>
{
{1, "For sale"},
{2, "Want to buy"},
{3, "Want to trade"},
{4, "Have to offer"}
};
}
}
}
添加到数据库时,我唯一真正需要的是 Ad 类中的参数(尽管我需要视图模型来呈现下拉菜单)。但是如何从 CreateViewModel 中提取它以添加到数据库中。
这是我目前的代码:
[HttpPost]
public ActionResult Create(Ad ad)
{
if (ModelState.IsValid)
{
db.Ads.Add(ad);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(ad);
由于这需要一个 Ad 类,我如何从视图模型中仅提取 Ad 参数并将其插入到数据库中。对不起,很长的帖子,可能是一些严肃的新手。我只是不知道如何更好地解释它。
如果有人可以解释视图模型,或者将我引导到某个站点,我将不胜感激。
/米