2015-04-27 61 views
1

我的View上有一個DropDownList和一個按鈕。點擊一個按鈕,我想將選定的DropDown值傳遞給控制器​​。這個怎麼做?將選定的DropDown值傳遞給控制器​​

查看代碼如下:

@model Sample2.Models.LeaveType 
@{ 
    ViewBag.Title = "Status of Application"; 
} 

@{ 
    List<SelectListItem> listItems = new List<SelectListItem>(); 
    listItems.Add(new SelectListItem 
     { 
      Text = "All", 
      Value = "A", 
      Selected = true 
     }); 
    listItems.Add(new SelectListItem 
     { 
      Text = "Recommended", 
      Value = "R" 
     }); 
    listItems.Add(new SelectListItem 
     { 
      Text = "Sanctioned", 
      Value = "S" 
     }); 
} 

<table> 
    <tr> 
     <td> 
      @Html.DropDownListFor(model => model.LeaveType1, listItems, "-- Select Status --") 
     </td> 
     <td> 
      @using (Html.BeginForm("Index", "Home", FormMethod.Get)) 
      { 
       <input type="submit" value="Show" /> 
      } 
     </td> 
    </tr> 
</table> 

控制器代碼是這樣的:

public ActionResult Index(string Id) 
    { 
     using (var context = new Admin_TestEntities()) 
     { 
      var data = context.Leave_GetDetails(Id).ToList(); 
      return View(data.AsEnumerable().ToList()); 
     } 

    } 

** **編輯

後建議,我爲如下的代碼,它正在工作:

 @using (Html.BeginForm("Index", "Home", FormMethod.Post)) 
     { 
      @Html.DropDownList("Id", listItems) 
      <input type="submit" value="Show" /> 
     } 
+2

你需要一個POST方法有兩種'公衆的ActionResult指數(LeaveType模型)'或'公ActionResult索引(字符串LeaveType1)'然後把你的下拉列表**裏面的表格標籤(目前你不回發任何東西) –

+0

@StephenMuecke我已經更改爲郵政。請說明如何將DropDownList放入Form中並傳遞選定的DropDown值。 – RKh

+2

只需將'@ Html.DropDownListFor(..)'移動到@using(Html.BeginForm(..'line)後面,但是您當前的GET方法無法工作 - 它將集合返回給視圖,但視圖被聲明爲一個單獨的'LeaveType'對象(不是一個集合) –

回答

2

你可以做這樣的:

[Post] public ActionResult Index(string fromList) { ... }

視圖可以是這個樣子:

<div> 
@Html.BeginForm("Index", "Home", FormMethod.Post) 
{ 
    @Html.DropDownListFor(model => model.LeaveType1, listItems, "-- Select Status --") 
    <input type="submit" /> 
} 
</div> 
相關問題