You have to forget what you know about post backs, page state and controls in MVC. MVC is elegant, lightweight and simple to work with, but not if you're still thinking about how you do it in web forms.
Button click events aren't posted back for free. You have to either put the button in a form with an action or set up a client-side handler to take the value and post it. There are MVC ways to do this.
For the form approach, go this way:
Rendering forms in MVC[
^]
For the client-side script, use jQuery:
jQuery.post()[
^]
I have a ton of articles on my blog related to jQuery, model binding, controllers, actions, etc.:
http://jameschambers.com/articles[
^]
A couple of tips:
1) you're going to be creating an action on the controller to accept the search criteria. you'll likely want to add an attribute to that action (HttpPost).
2) if you have multiple values that you want passed it, the MVC way to do this would be to create a SearchOptions class that is accepted on the action. Model binding kicks in and takes care of creating the object for you.
3) don't try to wire things into your master page/page load kinds of events (there are some cases where this makes sense, but not in yours). your models should contain functionality, the views represent the model and the controller bind it together.
Feel free to post additional questions more specific to what you're working on.
Cheers.