私は質問モデルを表示し、データベースに情報を追加しています。ビューモデルを使用しているときのデータベースの更新
のは、私はこの2つのクラスがあるとしましょう:
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; }
モデルが本当にsimpifiedを超えているが、私はちょうどコンテキストの把握を取得したいです。私は、データベースにエントリを追加すると仮定ビューのビューモデルを作成したいと言うことができます。ビューモデルから「広告」データベーステーブルに情報を追加するにはどうすればいいですか? (私はドロップダウンをレンダリングするためにビューモデルを必要とするが)
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"}
};
}
}
}
デシベルに追加するとき、私は本当に必要な唯一のものは、広告のクラスのパラメータです:ビューモデルのようなものに見えると言うことができます。しかし、どのように私はCreateViewModelからdbに追加するためにこれを抽出するのですか?
これは、現時点では私のコードです:
[HttpPost]
public ActionResult Create(Ad ad)
{
if (ModelState.IsValid)
{
db.Ads.Add(ad);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(ad);
これは広告のクラスを期待しているので、どのように私は、ビューモデルからのみ広告PARAMATERSを抽出し、DBにそれを挿入します。 申し訳ありませんが、非常に長い投稿とおそらく深刻な初心者のものです。私はちょうどそれをより良く説明する方法を知らなかった。
誰かがビューモデルについて説明したり、私にそのようなサイトを案内したりすることができれば幸いです。
/メートル
マリウス:素晴らしい説明のためにありがとう。私はこれらの方向でちょっと考えていましたが、私はそれを働かせることはできませんでした。これは確かに私を助ける! –
私は助けることができてうれしいです。 – Mariusz