2014-10-26 16 views
29

Tôi đang làm việc trên MVC 5 Asp.Net và theo hướng dẫn this. Tôi tự hỏi rằng làm thế nào heck hiện này lấy kết quả khi tôi nhấp vào nút Filter.@ Html.BeginForm() hoạt động như thế nào? và kết quả tìm kiếm trong hướng dẫn Microsoft ASP.Net MVC 5?

Có đến một điểm mà mã này được thêm vào trong Movie/xem/Index.cshtml

@using (Html.BeginForm()) 
{  
    <p> Title: @Html.TextBox("SearchString") <br /> 
    <input type="submit" value="Filter" /></p> 
} 

Bây giờ như xa như tôi biết, nó tạo ra một textbox một nút trên màn hình. Nhưng làm thế nào là nút này gọi chức năng tìm kiếm (chỉ mục) và đi qua giá trị của textbox trong chức năng, tôi không thể có được điều này. Plzz xây dựng nó, tôi mới trong đó. Xin lỗi vì thứ ngu ngốc này. Cảm ơn

Trả lời

40

Đó không phải là một câu hỏi ngu ngốc. @html.BeginForm() hoạt động như thế này. Nó có một số thông số bạn có thể thêm vào nó như ActionControllerFormTypehtmlAttributes. Cách nó hoạt động là nếu bạn để trống nó sẽ tìm kiếm một hành động đăng với cùng tên trên trang bạn đang ở, ví dụ nếu bạn đang ở trên trang đăng nhập, nó sẽ tìm kiếm một hành động đăng nhập. Tôi luôn viết những gì actioncontroller Tôi muốn nó truy cập.

@html.BeginForm("AddUser", "Admin", FormMethod.Post, new { @class = "my_form"}) 

Vì vậy post action nên chấp nhận các thông số của bạn mà hình thức của bạn có chứa, và đó có thể là một ví dụ Model một Product, ViewModel hoặc đơn thông số chuỗi. Trong trường hợp của bạn với các tìm kiếm hành động của bạn sẽ trông như thế

[HttpPost] 
public ActionResult Search(string SearchString) 
{ 
    //do something here 
} 

Xin lưu ý ở đây, đối với chuỗi tìm kiếm được thông qua vào phương pháp này. Tên của số <input> phải giống với thông số mà hành động của bạn thực hiện. Vì vậy, biểu mẫu của chúng tôi phải như thế này

@using (Html.BeginForm("Search", "YOUR CONTROLLER", FormMethod.Post)){  
    <p> Title: @Html.TextBox("SearchString") <br /> 
    <input type="submit" value="Filter" /></p> 
} 

Hy vọng điều này sẽ mang lại sự rõ ràng.

+1

Biểu mẫu của tôi giống như tôi đã nêu trong câu hỏi. Cộng với các tham số trong hành động của tôi (Index) chức năng là "searchString", không phải "SearchString" (Đây S là vốn). Nếu vốn và nhỏ 'S' không tạo ra bất kỳ sự khác biệt nào, thì tôi chấp nhận câu trả lời của bạn. –

+1

Vâng, tôi đã thực hiện câu trả lời bằng cách thay đổi trường hợp các bảng chữ cái khác nhau trong mã biểu mẫu. Nó vẫn làm việc. Cảm ơn và chấp nhận :) –

+0

Có cách nào mà tôi có thể đơn giản sử dụng các thông số mô hình không? Ví dụ tôi có một mô hình với UserName, UserEmail và muốn có một hàm chỉ với một tham số - Mô hình. – FrenkyB

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