Ответ 1
Здесь простое решение.
Не все должно быть написано с помощью метода расширения в коде .NET. Одна из замечательных особенностей MVC - это легкий доступ к созданию собственного HTML.
С MVC4 вы можете получить идентификатор и имя элемента в дереве выражений с помощью помощников HTML.NameFor
и HTML.IdFor
<select name="@Html.NameFor(Function(model) model.CityId)"
id="@Html.IdFor(Function(model) model.CityId)"
class="location_city_input">
@For Each city In Model.Cities
@<option value="@city.Value"
@(If(city.Value = Model.CityId, "selected", ""))
data-geo-lat="@city.Lat"
data-geo-lng="@city.Lng"
data-geo-zoom="@city.Zoom">
@city.Text
</option>
Next
</select>
Предполагая, что Model.Cities
представляет собой набор элементов, которые выставляют каждое из этих свойств. Тогда вы должны быть настроены.
Если вы хотите повторное использование, подумайте над тем, чтобы сделать его шаблоном редактора для всего, что является перечисляемым из городов