无论如何,是否有一个SelectList在ViewModel上预先填充了数据属性?
我想要做
@Html.DropdownListFor(m=> m.CityId, Model.Cities);
因此它生成如下代码:
<select id="City" class="location_city_input" name="City">
<option data-geo-lat="-32.522779" data-geo-lng="-55.765835" data-geo-zoom="6" />
<option data-geo-lat="-34.883611" data-geo-lng="-56.181944" data-geo-zoom="13" data-geo-name="Montevideo" data-child=".state1" value="1">Montevideo</option>
<option data-geo-lat="-34.816667" data-geo-lng="-55.95" data-geo-zoom="13" data-geo-name="Canelones, Ciudad de la Costa" data-child=".state41" value="41">Ciudad de la Costa</option>
</select>
这是简单的解决方案。
并非所有内容都必须使用.NET代码中的扩展方法编写。关于MVC的一大优点是,它使您可以轻松地构造自己的HTML。
随着MVC4你可以得到元素的ID和名称上与助手表达式树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
是一组暴露每个属性的项目。那你应该准备好了。
如果您想要可重用性,请考虑将其设为任何可枚举城市的编辑器模板
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句