Anticipating that you know the code to be written, I am writing you the flow and steps to follow in Repository pattern.
First, Always try to add the context code i.e. the database operations in the Service or Repository whichever you have. Context operations should not be added to the Controller.
Repository Pattern is a must in MVC application as it provides loose coupling, that is great for maintainance. So, for this you need to use
Dependency Injection
Now for the query you have mentioned, you first need to make an ajax call to get the list of countries, i.e. the Action method that would call the Repository where the GetCountryList(), suppose would be there. This returns a list of Countries.
Then populate these values in a dropdown and onSelect event for the dropdown, add a function that would make two ajax call for getting the list of State, similarly on select of the State follow the same function on select event for the dropdown.
Please follow up, if any queries post back.
Thanks. :)