Подтвердить что ты не робот

@Html.DropDownList ширина

В: Как установить ширину для @Html.DropDownList(а не в css)?

@Html.DropDownList("ListId", String.Empty, new {style="width: 250px;"})  @* no go!*@
4b9b3361

Ответ 1

Второй аргумент DropDownList должен быть IEnumerable<SelectListItem>. Вы передаете строку (более точную, точнее, пустую). Поэтому, чтобы использовать этого помощника, вам придется соблюдать его подпись:

@Html.DropDownList(
    "ListId", 
    Enumerable.Empty<SelectListItem>(), 
    new { style = "width: 250px;" }
)

Очевидно, что создание пустого выпадающего списка малопригодно. Вероятно, у вас есть модель представления (вы должны кстати), которую вы хотите использовать для привязки к:

@Html.DropDownList(
    "ListId", 
    Model.MyList, 
    new { style = "width: 250px;" }
)

и, конечно, потому что у вас есть модель представления, вам следует использовать помощник DropDownListFor:

@Html.DropDownListFor(
    x => x.ListId, 
    Model.MyList, 
    new { style = "width: 250px;" }
)

и, наконец, чтобы избежать загромождения HTML со стилями, вы должны использовать внешний CSS:

@Html.DropDownListFor(
    x => x.ListId, 
    Model.MyList, 
    new { @class = "mycombo" }
)

где в вашем внешнем CSS вы определяете правило .mycombo:

.mycombo {
    width: 250px;
}

Теперь у вас есть то, что я считаю правильным кодом.

Ответ 2

Вы должны использовать подход View Model. Однако ленивый выход - просто дать второму параметру значение null.

@Html.DropDownList("ListId", null, new {style="width: 250px;"})

Ответ 3

 @Html.DropDownListFor(model => model.Test,
 new SelectList(new List<YourNamespace.Modelname>(), "Id", "Name"), 
 null, new { @id = "ddlTest", @style="width: 250px;" })

Ответ 4

Существует метод jquery, который позволяет вам устанавливать ширину без необходимости использования конструктора @Html.DropDownList.

<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        $("#ListId").width(300);
    });
</script>