2017-01-03 37 views
0

我已將一個表單添加到我的默認索引視圖中,併爲名爲'數量'的Html.TextBox添加了一列。當我點擊提交後,我把它發送到行動「OrderForm」但是當我調試,我只通過數量值和ITEMNAMEinventory_no爲空。誰能幫忙?ASP.MVC - 通過使用表格我將如何傳遞參數給控制器?

enter image description here

下面是從我的MVC示例代碼:

型號:

[Table("inventory")] 
public partial class inventory 
{ 
    [Key] 
    [Column(Order = 0)] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int inventory_no { get; set; } 

    public string name { get; set; } 
}  

查看:

@model IEnumerable<MYAPP.inventory> 
@{ 
ViewBag.Title = "Index"; 
} 
@using (Html.BeginForm("orderForm", "inventories", FormMethod.Post)) 
{ 
<h2>Index</h2> 
<p> 
@Html.ActionLink("Create New", "Create") 
</p> 

<div id="details"></div> 
<table class="table"> 
<tr> 
    <th> 
     Quantity 
    </th> 
    <th> 
     Name 
    </th> 
</tr> 

@foreach (var item in Model) 
{ 
    <tr> 
     <td> 
      @Html.TextBox("Quantity",0, new { style = "width:30px",  
@class = "selectedItem"}) 
     </td> 
     <td class="itemName"><b> 
@Html.DisplayFor(modemItem => item.name) 
</b> 
     </td> 
     <td> 
      <a href="#" class="remove" data-url="@Url.Action("Remove", new { id = item.inventory_no })">Remove</a> 
      @Html.ActionLink("Edit", "Edit", new { inventory_no = item.inventory_no.ToString(), client_no = item.client_no }) | 
      @Html.ActionLink("Delete", "Delete", new { inventory_no = item.inventory_no.ToString(), client_no = item.client_no }) 
     </td> 
    </tr> 
} 
</table> 
<input type="submit" value="Submit your order" /> 
} 

控制器:

public ViewResult orderForm (int quantity, string itemName, int? inventory_no) 
    { 

     return View(); 
    } 
+0

你只有文本框爲一個字段爲每個項目提交按鈕? – AliK

+0

https://puu.sh/t9dNL/3fb3950293.png – TaylorM

回答

1

您當前的代碼僅爲數量生成標記。如果您需要inventory_id和name值,則需要具有表單字段。

您可以將這些值保留在隱藏字段中,並且名稱與您的操作方法參數相匹配。此外,由於你的操作方法需要單個存貨項目的詳細情況,你應該有你的形式和循環

@foreach (var item in Model) 
{ 
    using(Html.BeginFor("orderForm","YourcontrollerName")) 
    { 
    <tr> 
     <td> 
      @Html.TextBox("Quantity",0, new { @class = "selectedItem"}) 
     </td> 
     <td class="itemName"> @Html.DisplayFor(modemItem => item.name) 
           @Html.Hidden("name",item.name) 
           @Html.Hidden("inventory_no",item.inventory_no) 

     </td> 
     <td> 
      <input type="submit" value="Submit your order" /> 
      <!-- your existing links here--> 
     </td> 
    </tr> 
    } 
} 
+0

我是ASP.NET MVC的新手。我不知道HiddenFor HTML Helper。 – TaylorM

+0

使用'隱藏的幫手(我更新了答案)。它基本上爲表單中的隱藏元素(具有您的值)生成標記,以便在表單提交時可用 – Shyju

相關問題