2012-06-08 32 views
10

Tôi là thương hiệu mới cho mọi thứ .NET. Tôi có một trang web rất cơ bản với một biểu mẫu HTML. Tôi muốn 'onsubmit' gửi dữ liệu biểu mẫu từ View đến Controller. Tôi đã nhìn thấy các bài viết tương tự nhưng không có câu trả lời nào liên quan đến cú pháp Razor mới. Tôi phải làm gì với 'onsubmit', và làm cách nào để truy cập dữ liệu từ Controller? Cảm ơn!!Dao cạo MVC 3 của ASP.NET: Chuyển dữ liệu từ chế độ xem tới bộ điều khiển

Trả lời

26

Bạn có thể bao gồm các điều khiển chế độ xem mà bạn muốn chuyển sang dạng Html.Beginform.

Ví dụ:

@using (Html.BeginForm("ActionMethodName","ControllerName")) 
{ 
... your input, labels, textboxes and other html controls go here 

<input class="button" id="submit" type="submit" value="Submit" /> 

} 

Khi nút Submit được nhấn tất cả mọi thứ bên trong của Beginform rằng sẽ được trình lên phương pháp "ActionMethodName" lại bộ điều khiển "ControllerName".

ON phía điều khiển bạn có thể truy cập tất cả dữ liệu nhận được từ giao diện như thế này:

public ActionResult ActionMethodName(FormCollection collection) 
{ 
string userName = collection.Get("username-input"); 

} 

bộ sưu tập đối tượng trên sẽ chứa tất cả các mục nhập của bạn mà chúng tôi gửi từ biểu mẫu. Bạn có thể truy cập chúng bằng tên giống như bạn sẽ truy cập vào bất kỳ mảng: bộ sưu tập [ "blah"] hoặc collection.Get ("blah")

Bạn cũng có thể truyền tham số cho bộ điều khiển của bạn trực tiếp mà không gửi toàn bộ trang với FormCollection:

@using (Html.BeginForm("ActionMethodName","ControllerName",new {id = param1, name = param2})) 
{ 
... your input, labels, textboxes and other html controls go here 

<input class="button" id="submit" type="submit" value="Submit" /> 

} 

public ActionResult ActionMethodName(string id,string name) 
{ 
string myId = id; 
string myName = name; 

} 

Hoặc bạn có thể kết hợp cả hai phương pháp này và chuyển các thông số cụ thể cùng với Bộ sưu tập mẫu. Tuỳ bạn.

Hy vọng điều đó sẽ hữu ích.

chỉnh sửa: trong khi tôi đang viết, người dùng khác cũng đã giới thiệu cho bạn một số liên kết hữu ích. Hãy xem.

+0

Tuyệt vời, cảm ơn bạn rất nhiều! –

+0

Để kết hợp bạn cũng có thể làm điều này: HttpContext.Request.Form ["index"]; bằng cách này bạn không phải thêm FormCollection vào các tham số. –

0

Xác định một hình thức theo cách sau:

@using (Html.BeginForm("ControllerMethod", "ControllerName", FormMethod.Post))

sẽ thực hiện cuộc gọi đến các phương pháp "ControllerMethod" trong bộ điều khiển "ControllerName". Trong phương pháp, bạn có thể chấp nhận mô hình hoặc các loại dữ liệu khác làm đầu vào. Xem hướng dẫn this để biết các ví dụ sử dụng biểu mẫu và mvc dao cạo.

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