Как создавать и отображать элементы в одном представлении (представление строго типизировано)?
Нужно создать новую модель, которая будет включать в себя IEnumerable<City> и City.
Примерно так:public class NewModel
{

  public IEnumerable<City> CitiesList { get; set; }

  public City City { get; set; }

}
Использовать:@model NewModel@foreach(var city in Model.CitiesList)
{
  // список
}

@Model.City.КакоетоСвойство
Для удобства можно сделать частичные представления и передавать в них CitiesList и City. Первое представление должно ожидать IEnumerable<City>, второе - City. Т.е. будет примерно то, что у вас уже есть, просто обычные представления нужно сделать частичными (убрать все, что связано с шаблонизацией). Вывести эти представления в общем представлении, с передачей в их модель значений из модели общего представления (NewModel):@model NewMode

@Html.Partial("CitiesList", Model.CitiesList)

@Html.Partial("CityEditor", Model.City)
Частичное представление CitiesList:@model IEnumerable<City>

// ...
Частичное представление CityEditor:@model City

// ...
@model требуется для отображения, на привязку модели он не должен влиять.
То есть, если по роутингу у вас подходит метод Create(City city), то привязка будет стараться отыскать среди ValueProvider'ов значения, совпадающие с именами свойств модели (в данном случае - City).
Какие у вас выдает ошибки привязки?