2012-04-24 41 views
5

Tôi đang cố gắng gửi dữ liệu biểu mẫu của mình tới bộ điều khiển ASP MVC nhưng bộ sưu tập biểu mẫu trống. Các biến trong hành động bị ràng buộc đúng cách. Đây là biểu mẫu Razor của tôiasp mvc post không gửi dữ liệu biểu mẫu

@foreach (var recipe in Model.RecipesInCategory) { 
    <form name="input" action="mycontroller/myAction/@Model.Id1/@Model.Id2" method="post"> 
    <fieldset> 
     <table > 
     <tr> 
      <td> 
      <input id="AddBtn" type="submit" value="Add" /> 
      <select id="dayOfWeek" > 
       <option value="Sunday">Sunday</option> 
       <option value="Monday">Monday</option> 
       <option value="Tuesday">Tuesday</option> 
       <option value="Wednesday">Wednesday</option> 
       <option value="Thursday">Thursday</option> 
       <option value="Friday">Friday</option> 
       <option value="Saturday">Saturday</option> 
      </select> 
      </td> 
     </tr> 
     </table> 
    </fieldset> 
    </form> 
    } 

và đây là bộ điều khiển của tôi. Hai GUIDs đến thông qua đúng, nhưng biến dow luôn là null. Trên thực tế, Biểu mẫu không có mục nào cả.

[HttpPost] 
public ActionResult myAction(Guid Id1, Guid Id2) 
{ 
    var dow = this.Request.Form["dayOfWeek"]; 

Lưu ý rằng tôi có nhiều biểu mẫu trên trang này được tạo trong vòng lặp. đó có phải là vấn đề không?

+1

BTW, bạn nên sử dụng thông số hành động thay vì 'Request.Form'. – SLaks

+0

Tôi đến từ thế giới WPF và HTML của tôi rất yếu. Tôi cảm thấy những người trợ giúp HTML cách ly tôi từ HTML quá nhiều vào thời điểm này. Tôi muốn tìm hiểu những gì xảy ra dưới bìa trước khi tôi bắt đầu sử dụng abstractions. –

+0

Tôi không nói về người trợ giúp HTML; Tôi đang nói về các thông số hành động. Chúng đơn giản hơn nhiều so với việc đọc 'Yêu cầu' theo cách thủ công. – SLaks

Trả lời

21

Trình duyệt sẽ chỉ POST dữ liệu từ các phần tử biểu mẫu có thuộc tính name="".

+0

hoàn hảo! đã làm điều đó. cám ơn. –

+1

vì vậy hãy để tôi xem nếu tôi rõ ràng - POST sử dụng 'tên', và sử dụng CSS/JS Id? –

+2

Chính xác. 'name' không cần phải là duy nhất. (trên thực tế, đối với các nút radio, nó không nên là duy nhất) – SLaks

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