繁体   English   中英

ASP.NET MVC - 设置静态选择的默认值(下拉列表)

[英]ASP.NET MVC - Set default value for static Select (dropdownlist)

我在视图中使用常规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>

那么你去,你已经使用selected属性完成了它:

<option selected="selected" value="1">City1</option>

您应该将所选属性放在要预选的值上。

我想现在你意识到你不使用Html.DropDownListFor帮助器的疯狂,它会自动为你处理。 因为现在你必须把@if else stataments转换成意大利面条代码才能达到理想的行为。 但我想你已经有了不使用助手的理由。


更新:

从您的评论看来,您不使用DropDownList帮助程序的原因似乎是因为它不支持optgroup 这是真的,也是一个很好的理由。 但是编写一个custom helper是微不足道的,并且可以通过if / else语句预先设置默认值来避免使用spaghettifying你的视图。

没有太多干净的方法可以解决这个问题,但假设您有某种类型的模型绑定到此页面,您可以在页面加载后立即根据模型值设置下拉列表的选定值:

<script type="text/javascript">

(function($) {
    $(document).ready(function() {
        var locationToSet = "@Model.LocationToSet";
        $('#ddlLocation option[value="' + locationToSet + '"]').prop('selected', true);});
})(jQuery);​

</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM