2013-02-18 55 views
0

我有兩個表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); 
    } 

然而,如何確保下面的HTML代碼使用的/DealDetail/Create/5代替/DealDetail/Create要發佈的網址?

@Html.Partial("_Deal", (Models.Deal)ViewBag.Deal) 
@using (Html.BeginForm()) { 
     ...... 
     <input type="submit" value="Create" /> 
    </fieldset> 
} 

還是有辦法設置DealDetail.DealIDViewBag.Deal.DealId(ID)在CSHTML文件中的值?

回答

2

我想這應該做你在找什麼:

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

無論你從你的模型或ViewBag分配ID,重要的一點是分配的ID,路由引擎和您現有的控制器邏輯應該休息一下。

相關問題