我有两张表Deal
和DealDetail
。我创建了两个控制器方法。
//
// GET: /DealDetail/Create/5
public ActionResult Create(int id)
{
var deal = _db.Deals.Find(id);
ViewBag.Deal = deal;
return View();
}
//
// POST: /DealDetail/Create/5
[HttpPost]
public ActionResult Create(int id, DealDetail dealdetail)
{
dealdetail.DealId = id;
if (ModelState.IsValid)
{
_db.DealDetails.Add(dealdetail);
_db.SaveChanges();
return RedirectToAction("Index");
}
return View(dealdetail);
}
但是,如何确保使用/DealDetail/Create/5
而不是/DealDetail/Create
的网址发布以下html代码?
@Html.Partial("_Deal", (Models.Deal)ViewBag.Deal)
@using (Html.BeginForm()) {
......
<input type="submit" value="Create" />
</fieldset>
}
或者有没有办法在cshtml文件中将DealDetail.DealID
设置为ViewBag.Deal.DealId
(id)的值?
答案 0 :(得分:2)
我认为这应该是你想要的:
Html.BeginForm("Create","DealDetail", new { id = Model.DealID }, FormMethod.Post);
无论您是从Model还是ViewBag分配id,重要的一点是分配id,路由引擎和现有的Controller逻辑应该完成其余的工作。