主/细节编辑 - 将值传递给细节模型属性

时间:2013-02-18 06:43:38

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我有两张表DealDealDetail。我创建了两个控制器方法。

    //
    // 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)的值?

1 个答案:

答案 0 :(得分:2)

我认为这应该是你想要的:

Html.BeginForm("Create","DealDetail", new { id = Model.DealID }, FormMethod.Post);

无论您是从Model还是ViewBag分配id,重要的一点是分配id,路由引擎和现有的Controller逻辑应该完成其余的工作。