Если ваш контроллер передает '3', почему бы не сделать так, чтобы он вместо этого передавал весь список SelectListItem?
Тогда вы бы сделали что-то вроде этого в контроллере:
public ActionResult MyController(MyModel model)
{
// Build SelectListItem list
ViewBag.CitiesList = new List<SelectListItem>()
{
new SelectlistItem { Text = "City1", Value = 1, Selected = true},
new SelectlistItem { Text = "City2", Value = 2},
new SelectlistItem { Text = "City3", Value = 3}
}
View(model);
}
Иполучил это таким образом в представлении:
<%: Html.DropDownList("dropCity", ViewBag.CitiesList as IEnumerable<SelectListItem>) %>
Таким образом, вся логика выбора правильного города находится в контроллере, как и должно быть с самого начала.