2012-10-26 54 views
2

我有用於顯示頁面大小的下拉菜單。例如將數據從視圖傳遞給控制器​​在mvc3中獲取呼叫

@Html.DropDownListFor(m => m.PageSize, 
new List<SelectListItem>() { new SelectListItem() { Text = "10" }, 
new SelectListItem() { Text = "20" }, 
new SelectListItem() { Text = "50" }, 
new SelectListItem() { Text = "100" } 
}) 

我必須在控制器操作中獲取選定的項目值。

我的行動將只接受撥打電話。我只是不想傳遞查詢字符串。那麼如何實現這一點?

+0

爲什麼POST不可能? – dove

+0

嘗試使用發佈請求。請參閱http://stackoverflow.com/questions/10187469/pass-selectedvalue-of-dropdownlist-in-html-beginform-in-asp-net-mvc-3 http://stackoverflow.com/questions/10119286/passing-下拉菜單選擇的值-從視點到控制器功能於MVC3 – amesh

回答

2

如果你想使用GET傳遞它,恐怕你唯一的選擇是查詢字符串。

要拍攝引自w3.org spec

「GET方法意味着檢索的任何信息(以一個實體的形式)由請求URI來標識。」

1

我的想法是準備這更加動態和發送數據模型。

<td> 
@Html.DropDownListFor(m => m.CurrentVoucher, new System.Web.Mvc.SelectList(Model.OutgoingStatusList, "Value", "Text"), new { style = "width:140px" }) 
</td> 

------------ 
model.OutgoingStatusList = new List<SelectListItem>(); 
------------ 
model.KidsList = new List<SelectListItem>(); 
      for (int i = 0; i <= 20; i++) 
       model.KidsList.Add(new SelectListItem { Value = i.ToString(), Text = i.ToString() }); 

模型將得到值「m.CurrentVoucher」。只有一個例子(我從筆記中獲取)和「model.kidsList」,您可以更改爲「model.OutgoingStatus」,您可以更改名稱。閱讀這個例子,我希望我幫助。

1

如果你所厭惡的使用查詢字符串是手動構建URL,然後把它包在與方法=「獲取」,這樣你仍然可以使用控制類的下拉但他們會自動變成查詢字符串形式提交表格。

相關問題