我在视图中使用常规html下拉列表(选择)。 出于某种原因,我不想使用Html.DropdownlistFor。 现在我可以在Controller类中获取所选值。 如何将选定的值分配回视图?
<select name='ddlLocation' id='ddlLocation'>
<option value="">All </option>
<option selected="selected" value="1">City1</option>
<option value="2">City2</option>
<optgroup label="Group">
<option value="3">City2</option>
<option value="4">City3</option>
<option value="5">City4</option>
</optgroup>
</select>
答案 0 :(得分:1)
那么你去了,你已经使用selected
属性完成了它:
<option selected="selected" value="1">City1</option>
您应该将所选属性放在要预选的值上。
我想你现在意识到你没有使用Html.DropDownListFor帮助器的疯狂,它会自动为你处理。因为现在你必须把@if else stataments转换成意大利面条代码才能达到理想的行为。但我想你已经有了不使用助手的理由。
更新:
从您的评论中看来,您不使用DropDownList助手的原因是因为它不支持optgroup
。这是真的,也是一个很好的理由。但是写一个custom helper
是微不足道的,并且可以避免你用if / else语句来破坏你的观点以预先选择默认值。
答案 1 :(得分:1)
没有多少干净的方法可以解决这个问题,但假设您有某种类型的模型绑定到此页面,您可以在页面加载后立即根据模型值设置下拉列表的选定值:
<script type="text/javascript">
(function($) {
$(document).ready(function() {
var locationToSet = "@Model.LocationToSet";
$('#ddlLocation option[value="' + locationToSet + '"]').prop('selected', true);});
})(jQuery);
</script>