2015-07-28 174 views
-1

我正在開發MVC 4應用程序,其中需要將視圖中的更新值傳遞給控制器​​。將更新後的值傳遞給控制器​​從視圖

  @foreach (var item in Model) 
      { 
      <tr> 
       <td>@item.ProductId</td> 
       <td>@item.Product.ProductName</td> 
       <td>@item.Product.UnitPrice</td> 
       <td> 
       @Html.TextBox("QuantityBox", item.Quantity) 
       </td> 

      </tr> 
      } 


      //Update Button 

      @using (Html.BeginForm("UpdateCart", "Cart", FormMethod.Post)) 
      { 
       @Html.AntiForgeryToken() 
       <input type="submit" id="submit" name="Update" value="Update" /> 
      } 

對於不同的行可以輸入不同的值。 我需要將這些值從數量文本框傳遞給控制器​​。

+0

採取foreach內部形式。 –

回答

0
Write like this.. 


@using (Html.BeginForm("UpdateCart", "Cart", FormMethod.Post)) 
      { 
       @Html.AntiForgeryToken() 

@foreach (var item in Model) 
      { 
      <tr> 
       <td>@item.ProductId</td> 
       <td>@item.Product.ProductName</td> 
       <td>@item.Product.UnitPrice</td> 
       <td>`enter code here` 
       @Html.TextBox("QuantityBox", item.Quantity) 
       </td> 

      </tr> 
      } 
       <input type="submit" id="submit" name="Update" value="Update" /> 
      } 
1

嘗試使用for循環

@using (Html.BeginForm("UpdateCart", "Cart", FormMethod.Post)) 
{ 
    @for(int idx = 0;idx < Model.Length;idx++) 
    { 
    <tr> 
     <td>@Model[idx].ProductId</td> 
     <td>@Model[idx].Product.ProductName</td> 
     <td>@Model[idx].Product.UnitPrice</td> 
     <td> 
      @Html.TextBoxFor(_ => Model[idx].Quantity) 
     </td> 
     </tr> 
    } 

    @Html.AntiForgeryToken() 
    <input type="submit" id="submit" name="Update" value="Update" /> 
} 

當你郵寄上述回控制器,MVC模式粘結劑將看到文本框爲Model[0].QuantityModel[1].Quantity等,並嘗試將其綁定到傳入模型。使用foreach循環將導致沒有數據被傳回控制器。

我不知道你在視圖中使用了什麼@model,但我假設MVC模型聯編程序能夠處理這個問題。你的模型,否則回到控制器將不包括用戶視圖submmitted更新值:

0

我將撬動整個的foreach碼塊

@foreach (var item in Model) 
     { 
     <tr> 
      <td>@item.ProductId</td> 
      <td>@item.Product.ProductName</td> 
      <td>@item.Product.UnitPrice</td> 
      <td> 
      @Html.TextBox("QuantityBox", item.Quantity) 
      </td> 

     </tr> 
     } 

進入使用的語句。

換句話說:您的控制器所需的值必須位於提交按鈕所在的Using語句中。

-1

您的代碼應該像下面

@using (Html.BeginForm("UpdateCart", "Cart", FormMethod.Post)) 
       { 
    @for(i=0;i< Model.item.count ;i++) 
       { 
       <tr> 
        <td>@item.ProductId</td> 
        <td>@item.Product.ProductName</td> 
        <td>@item.Product.UnitPrice</td> 
        <td> 
        @Html.TextBoxFor(m=>m.item[i].Quantity) 
        </td> 

       </tr> 
       } 


       //Update Button 


        @Html.AntiForgeryToken() 
        <input type="submit" id="submit" name="Update" value="Update" /> 
       } 

然後你將通過張貼 需要使用表單標籤正確地讓我知道,如果它的工作原理 如果您想了解URL重寫得到控制這些值MVC-4請訪問http://grandhah.blogspot.in/

相關問題