2012-05-04 30 views
7

Hành vi được xác định cho ràng buộc biểu mẫu trong ASP.NET/MVC là gì nếu bạn POST biểu mẫu và hành động của chúng tôi có tham số bạn có dữ liệu biểu mẫu?Mô hình ràng buộc với POST bằng chuỗi truy vấn VÀ tham số biểu mẫu

Ví dụ:

<form action="my/action?foo=1" method="post"> 
    <input type="hidden" name="bar" value="2"> 
</form> 

Nếu một hình thức như vậy được gửi nên bộ điều khiển được cả hai foobar hoặc chỉ một trong số họ?

Trả lời

7

Bộ điều khiển sẽ nhận được cả hai giá trị. Trình kết nối mô hình mặc định sẽ cố gắng tìm các kết quả phù hợp cho các tham số từ cả URI (chuỗi truy vấn hoặc các tham số tuyến đường) hoặc phần thân (và dữ liệu biểu mẫu được hỗ trợ out-of-the-box).

0

Tôi nghĩ rằng nó sẽ có thể nhận được cả hai. Trong trường hợp này, tôi sẽ tạo một ViewModel chứa hai chuỗi hoặc thuộc tính int, một tên có tên là 'foo' và một tên khác là 'bar' và có ActionResult của bạn chấp nhận ViewModel. Bạn sẽ thấy cả hai giá trị đến trong

1

Lưu ý, bạn có thể thấy điều này được hỗ trợ bởi Html.BeginForm helper, bạn làm như vậy thông qua routeValues:.

@Html.BeginForm("ActionName", "ControllerName", new { foo = "1" }) 

Nó chủ yếu tạo ra html giống như thẻ mẫu của bạn, nhưng muốn đăng cho những người tìm thấy câu hỏi này và muốn biết cách chuyển các giá trị bổ sung không phải là một phần của biểu mẫu bằng cách sử dụng trình trợ giúp BeginForm.

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