Controller class pattern
Web API should not be bound to a particular UI

API calls should not bound to a user interface requirement, so that it could be used in multiple places without any addition requirement. In the above code, it is returning a list of dropdownlist values rather than a list of entities.  

Your controller code may look like this:

public class ConstantsController : ApiController
{
    private readonly IConstantRepository _constantRepository;

    public ConstantsController(IConstantRepository constantRepository)
    {
        _constantRepository = constantRepository;
    }


    [Route("Constants/City")]
    [HttpGet]
    public IEnumerable&lt;City&gt; GetCity()
    {
        return _constantRepository.GetCity();
    }


    [Route("Constants/Country")]
    [HttpGet]
    public IEnumerable&lt;Country&gt; Country()
    {
        return _constantRepository.GetCountry();
    }
}


Note: I am using Web API 2 for this code.

This code can be used by any kind of application like this:


  http://yoururl/Constants/Country

Use a DI container to inject dependencies into your controller

Use Unity or a simple injector to inject dependencies. It will help you to isolate components.

public interface IConstantRepository
{
    IEnumerable&lt;City&gt; GetCity();

    IEnumerable&lt;Country&gt; GetCountry();
}



Also, include unit tests in your applications.