私は、Music Storeのチュートリアルに従います。私はpgでStoreManagerControllerを作成しました。 54ish。そして、それはCreate、Deleted、Editなどのビューを作成しました。それはデータベースにいくつかのもの、つまり私のEditForコントロールを保存していますが、それ以外は何も保存しません。データベースへのMVCフォームの提出の処理
私は、複数のDropDownListForコントロールをデータベース内のテーブルとActive Directoryユーザーデータの両方で作成しています。私はこれらを保存する方法がわかりません。ここに私の要約したコードがあります。助けてくれてありがとう。
ビュー:
<div class="createTopInner">
<div class="editor-label">
@Html.LabelFor(model => model.test.Category)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.CategoryId, Model.CategoryItems, "")
@Html.ValidationMessageFor(model => model.test.Category)
</div>
</div>
はコントローラー:
public ActionResult Create()
{
// These four lines get active directory users
ActiveDirectoryModel ads = new ActiveDirectoryModel();
ViewBag.assignedto = ads.FetchContacts();
ViewBag.coassignedto = ads.FetchContacts();
ViewBag.notifyto = ads.FetchContacts();
var model = Populate();
return View(model);
}
[HttpPost]
public ActionResult Create(CreateViewModel model)
{
if (ModelState.IsValid)
{
db.TestItems.AddObject(model.test);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(model);
}
public CreateViewModel Populate()
{
var model = new CreateViewModel
{
CategoryItems =
from c in new IntraEntities().CategoryItems.ToList()
select new SelectListItem
{
Text = c.Name,
Value = c.ID.ToString()
}
};
return model;
}
モデル:
public class CreateViewModel
{
public Intra.Models.TestItem test{ get; set; }
public int CategoryId { get; set; }
public IEnumerable<SelectListItem> CategoryItems { get; set; }
}