0
所以這裏有很多關於如何將DropDownList選定值傳遞給ActionResult的很好的答案。然而,我找不到任何關於傳入選定的DropDownList值和項目的ID。如何將項目ID和DropDownList選定項目值傳遞給ActionResult?
爲了說明問題,我正在處理一個表,其中每一行表示一個項目,唯一的用戶可變長度值是用觸發更新的下拉列表和按鈕控制的狀態。由於數據庫中的狀態列是不可空的,所以預先選擇了下拉列表的值。當用戶點擊按鈕時,它應該發送相關項目類型的ID以及用戶想要爲該項目更改的狀態,以便ActionResult可以正確更新數據庫
我的當前視圖代碼如下所示:
<div id="divGrid" style='position:absolute; width:auto; padding-right: 5%'>
<table id="checklistGrid" class="table table-bordered table-striped grid">
<tr>
<th>@Html.DisplayNameFor(model => model.ww)</th>
.... // more table headings
</tr>
@foreach (var ww in Model.GroupBy(x => x.ww))
{
<tr class="ww-header">
<td colspan="12"><span class="h2">@ww.Key</span></td>
</tr>
foreach (var manager in ww.GroupBy(x => x.manager))
{
<tr class="manager-header">
<td colspan="12"><span class="h4">@manager.Key</span></td>
</tr>
foreach (var item in manager)
{
<tr class="row-header">
<td>@Html.DisplayFor(modelItem => item.ww)</td>
.... //more columns
<td>
@* ------------- Area in question ------------- *@
@{
List<string> ddl = new List<string> { "Done", "Not Done", "N/A" };
SelectList sl = new SelectList(ddl, item.status);
using (Html.BeginForm("Update", "Checklist", new { id = item.ID, /* DDL Selected Value */}))
{
@Html.DropDownList("StatusDDL", sl);
<input type="submit" value="Update" />
}
}
@* --------------------------------------------- *@
</td>
<td>
@Html.DisplayFor(modelItem => item.applied_by)
</td>
@* [...] *@
控制器:
public ActionResult Update(int ID, string newStatus)
{
//// Get the model
//TaskInfo taskInfo = db.taskInfoSet.Where(m => m.ID == ID).FirstOrDefault();
//// Update properties
//taskInfo.status = newStatus;
//// Save and redirect
//db.Entry(taskInfo).State = EntityState.Modified;
//db.SaveChanges();
return RedirectToAction("Index");
}
鑑於上述情況我該如何編寫它使得這兩個選擇的下拉值和item.ID發送到的ActionResult?
的''你'
Herpa Derp,這是解決方案。把它作爲一個答案,我會適當地標記它。 –
注意,如果你顯示的視圖是'Index()' - 也就是說你重定向回到POST方法中的相同視圖,你將通過使用ajax發佈2個值。 –