# Change this line with an =:
<%= @categories.each do |c| %>
# ...to this:
<% @categories.each do |c| %>
Вам нужны только побочные эффекты для блока метода #each
, вам не нужна интерполяция возвращаемого значения.
К сожалению, я не на работе, поэтому не могу получить реальный код. Однако я добился этого, записав событие javascript в качестве атрибута html в контроллере, а затем передал его в ViewData.
Когда вы пишете код:
<%=Html.DropDownList("SelectList", (SelectList)ViewData["SelectList"], [htmlAttribute])
Обычно в контроллере вы пишете атрибут html и назначаете его в методе раскрывающегося списка.
Когда имя, данное элементу управления ( первый параметр в данном случае "SelectList") такой же, как один из ключей в словаре ViewData, в основном он портит и игнорирует предварительно выбранный элемент в SelectList
. Просто переименовывая DropDownList, он работает правильно и привязывается к предварительно выбранному элементу