2014-02-27 56 views
0

我試圖將實體保存在編輯模式下。 我想通過FormCollection將View中的值傳遞給控制器​​,但沒有值進入控制器。將值從視圖傳遞到控制器時,沒有值進入FormCollection

下面是標記:

@using (Html.BeginForm("Edit", "Product", FormMethod.Post, new { enctype = "multipart/form-data", id = "frmCreate" })) 
{ 
    <div class =" row-fluid Span12" style ="margin-bottom :15px"> 
     <div class="span6" > 
      <div class ="span4"> 
       <label>Product Name</label> 
      </div> 
      <div class ="span6"> 
       <input type="text" value="@ViewBag.Name" id="ProductName" name="ProductName" style="height:20px; width:100%;" /> 
      </div> 
     </div> 
     <div class="span6" > 
      <div class="span4" > 
      <label > Product Code</label> 
     </div> 
     <div class="span6" > 
      <input type="text" value="@ViewBag.SectionCode" id="SectionCode"/> 
     </div> 
    </div> 
    <div class="span11" style="text-align:right"> 
     <input class="btn btn-primary" type="submit" value="Save" id="Edit"/> 
     <button class="btn btn-default">Cancel</button> 
    </div> 
      } 

,這是我的控制器代碼

[HttpPost] 
public ActionResult Edit(FormCollection form) 
{ 
    Product product = new Product(); 
    product.SectionCode = Convert.ToString(form["SectionCode"]); 
    product.Name = Convert.ToString(form["Name"]); 

    return RedirectToAction("SaveData", oProductNew); 
} 

沒有值進入的FormCollection。

+1

我沒有看到你的HTML源代碼中的任何形式既不是一個HTML幫手。你如何聲明表單並使用post? – KURN

+0

你有什麼理由使用FormCollection嗎? – jacqijvv

+0

您的SectionCode輸入字段沒有名稱。 – SebastianStehle

回答

0

可能您的視圖代碼不屬於表單。把它放在表單中,然後嘗試提交它。

0

如何嘗試此操作。在你[HttpGet]方法你做到以下幾點:

[HttpGet] 
    public ActionResult Edit() 
    { 
     Product product = new Product(); 
     return View(product); 
    } 

對於[HttpPost]更新你的代碼(這應該結合正常工作):

[HttpPost] 
    public ActionResult Edit(Product product) 
    { 
     return RedirectToAction("SaveData", product); 
    } 

最後一點,你可以更新您的視圖以產品爲瀏覽模式:

@model YourNamespace.Product @* Page View Model *@  
    @using (Html.BeginForm("Edit", "Product", FormMethod.Post, new { enctype = "multipart/form-data", id = "frmCreate" })) 
    { 
     <div class =" row-fluid Span12" style ="margin-bottom :15px"> 
      <div class="span6" > 
       <div class ="span4"> 
        <label>Product Name</label> 
       </div> 
       <div class ="span6"> 
        @Html.TextBoxFor(x => x.ProductName, new { @Style = "height:20px; width:100%;" }) @* TextBoxFor Extension Method *@ 
       </div> 
      </div> 
      <div class="span6" > 
       <div class="span4" > 
       <label > Product Code</label> 
      </div> 
      <div class="span6" > 
       @Html.TextBoxFor(x => x.SectionCode) @* TextBoxFor Extension Method *@   
      </div> 
     </div> 
     <div class="span11" style="text-align:right"> 
      <input class="btn btn-primary" type="submit" value="Save" id="Edit"/> 
      <button class="btn btn-default">Cancel</button> 
     </div> 
    } 

@Html擴展方法將創建所有你需要的數據綁定發生AUTOMAGIC的名稱和ID的盟友。

相關問題