新しいデータベース エントリを作成するために HttpPost メソッドを作成しようとしています。異なるデータベース テーブルと「名前」から 2 つの外部 ID を取得する必要があります。モデルは次のとおりです。
public class Domena
{
public int DomenaID { get; set; } // this domains ID
public int TLDID { get; set; } // foreign id
public int KlientID { get; set; } // foreign id
public string Nazwa { get; set; }
public virtual TLD TLD { get; set; }
public virtual Klient Klient { get; set; }
}
そうです、基本的にこれは私が今持っているものです:
// GET: /Domena/Add_Domain
public ActionResult Add_Domain()
{
ViewBag.TLDID = new SelectList(db.TLDs, "TLDID", "Typ");
ViewBag.KlientID = new SelectList(db.Klienci, "KlientID", "KlientID");
return View();
}
//
// POST: /Domena/Add_Domain
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Add_Domain(Domena domena)
{
if (ModelState.IsValid)
{
db.Domeny.Add(domena);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.TLDID = new SelectList(db.TLDs, "TLDID", "Typ", domena.TLDID);
ViewBag.KlientID = new SelectList(db.Klienci, "KlientID", "KlientID", domena.KlientID);
return View(domena);
}
現在の動作方法は、ドロップダウン リストが表示され、そこから "Typ" で TLDID を選択し、データベースの "KlientID" エントリで KlientID を選択できます。また、書かなければならない名前である「ナズワ」を求めます。
ドロップダウン リストから KlientID を選択するオプションを削除し、代わりに HttpPost がリンクから KlientID を取得するようにします。例 :
- クライアントの詳細ページに移動します:
/Klient/Details/6
- Add_Domain リンクをクリックすると、現在表示されている KlientID が取得され、次のページに移動します。
/Domena/Add_Domain/6
それで、私の質問は、データベースに新しい「ドメナ」エントリをリンクにあるクライアントのIDに作成するために、GetメソッドとPostメソッドの両方を変更するにはどうすればよいですか?
ビューでも何かを変更する必要がありますか?
ここに私の現在の Add_Domain ビューのフィールドセットがあります:
<fieldset>
<legend>Domena</legend>
<div class="editor-label">
@Html.LabelFor(model => model.TLDID)
</div>
<div class="editor-field">
@Html.DropDownList("TLDID", String.Empty)
@Html.ValidationMessageFor(model => model.TLDID)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.KlientID)
</div>
<div class="editor-field">
@Html.DropDownList("KlientID", String.Empty)
@Html.ValidationMessageFor(model => model.KlientID)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Nazwa)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Nazwa)
@Html.ValidationMessageFor(model => model.Nazwa)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
前もって感謝します!