Advanced search page in your MVC app in 5 minutes
Problem
- You have an ASP.NET MVC project which works with some database (directly or through EntityFramwork).
- You have a request for a new page in your application with "advanced search" functionality where users will be able to build quite complicated queries to underlying DB and get the result instantly
- You need this functionality, you know, "for yesterday" :)
Solution
1. Open your project in Visual Studio
2. Go to Package Manager (PM) Console
Use the menu item if the console is not opened currently:
Tools | Nuget Package Manager | Package Manager Console
3. Install EasyQuery Nuget package
Just type in PM console
PM> Install-Package EasyQuery.Mvc.Scaffolding
4. Scaffold an advanced search page
Type:
PM> Scaffold EasyQuery.MvcController {ControllerName} -ConnectionName {ConnectionName}
to add a new controller and corresponding view page.
Here {ConnectionName} parameter is the name of your connection defined in Web.config file.
Example:
PM> Scaffold EasyQuery.MvcController AdvancedSearch -ConnectionName DefaultConnection
in case you are using EntityFramework use -DbContext parameter of Scaffold command. For example:
PM> Scaffold EasyQuery.MvcController AdvancedSearch -DbContext NorthwindContext
5. Open your advanced search page in browser
Now you can try to open your new page in browser and check how it works. If you named your new controller (and view) exactly as in examples above ("AdvancedSearch") then you can type:
http://localhost:[port]/AdvancedSearch
That's all!
To see the whole process described above in action you can visit this video page on YouTube.