私はMVCの初心者ですが(C#ではありません)、プロジェクトはEntity Frameworkを使用してVisual Studio .NETアプリケーション(MVCまたはWPF)で作成する必要があります。MVCコンボボックスとデータベースに保存する方法は?
私はID、タイトル、名前、ミドルネーム、姓、住所、CountryId(テーブルの国[ID、名前]と1対多の関係を持っています)、アクティブ(ビット、真/偽、チェックボックス)
テーブルの国における
ID、名前(事前に定義された)
別のテーブルタイトル(私はdropdownlistsをハードコーディングできなかったので、私は、作った)
同上、TitleName
私の質問はコントローラ+ビューを作成したときにタイトルがテキストボックス(別名@ Html.Editor(...))に変更されたときです。@Html.DropDownList("nameHere", null, new { htmlAttributes = new { @class = "form-control" } })
次に私のドロップダウンビューを作成しますリスト:
public ActionResult Create()
{
ViewBag.nameHere = new SelectList(db.Titles, "Id", "TitleName");
ViewBag.CountryId = new SelectList(db.Countries, "Id", "Name");
return View();
}
はその後、私のPOSTに私もそれを置く:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Title,Name,MiddleName,Surname,Address,CountryId,Active")] Customer customer)
{
if (ModelState.IsValid)
{
db.Customers.Add(customer);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.nameHere = new SelectList(db.Titles, "Id", "TitleName", db.Title); //selects from table Titles the Id and TitleName for the field Title in Customers table? at least that's how I interpretate it
ViewBag.CountryId = new SelectList(db.Countries, "Id", "Name", customer.CountryId); //same for Country
return View(customer);
}
しかし、私は3つの問題を抱えて:
第一1 - db.Customers NでのタイトルのためのサーバーリターンをULL値
2番目 - ドロップダウンを使用しない場合、TextBoxフィールドから値を送信します。ただし、ユーザーは任意の値を書くことができます。
3番目(ViewBagとViewDataを使用している場合) - ViewDataアイテムはありませんキー "nameHere"を持つタイプ 'IEnumerable'
私は4つのオプションがある単純なドロップダウンリストが必要です - Ms、Mrs、Mr、Missそして選択してフルフォームをサーバーに送信すると名前、ミドルネーム、姓など)をドロップダウンリストから保存するには、Customersテーブルを使用します。これ以上何もない。
私はいくつかのOOPと答えを思い付くために管理データベースまず(別名ではないの周り、モデル、その後DBを作成する)
質問ごとに1つの質問をお願いします。 –
ビュー内のドロップダウンリストオプションを作成する方法を質問しています(「Mr.」と表示されます)。文字列)。これはヌル値を送信します! –
どのようにポストアクションでそれを読んでいる、特定のコードを表示 –