2010-06-09 71 views
9

Tôi có một biểu mẫu đăng lên một hành động với MVC. Tôi muốn kéo mục danh sách thả xuống đã chọn từ FormCollection trong hành động. Tôi phải làm nó như thế nào?Lấy giá trị danh sách thả xuống đã chọn từ một FormCollection trong MVC

hình thức của tôi Html:

<% using (Html.BeginForm()) 
    {%> 
    <select name="Content List"> 
    <% foreach (String name in (ViewData["names"] as IQueryable<String>)) { %> 
      <option value="<%= name %>"><%= name%></option> 
    <% } %> 
    </select> 
    <p><input type="submit" value="Save" /></p> 
<% } %> 

Hành động của tôi:

Trả lời

10

Bắt đầu bằng cách cho select thẻ của bạn hợp lệ name. Tên hợp lệ không được chứa dấu cách.

<select name="contentList"> 

và sau đó lấy giá trị được lựa chọn từ các tham số hình thức bộ sưu tập:

var value = collection["contentList"]; 

Hoặc thậm chí tốt hơn: không sử dụng bất kỳ bộ sưu tập, sử dụng một tham số hành động trong đó có tên giống như tên của lựa chọn của bạn và để liên kết mô hình mặc định điền vào nó:

[HttpPost] 
public ActionResult Index(string contentList) 
{ 
    // contentList will contain the selected value 
    return RedirectToAction("Details", contentList); 
} 
+0

Oh snap! Cảm ơn, đã làm các trick. Tôi đã thử cả hai cách nhưng tôi thích cách bạn sử dụng tham số hành động. –

Các vấn đề liên quan