mvc4 применить функцию JavaScript для ввода

0

Я пытаюсь применить функцию к выпадающему списку в моей форме MVC4. Однако "переменные" вокруг переменных сохраняют рендеринг в HTML как "& # 39". Очевидно, что для javascript это не то, что я что. В настоящее время используется следующий код:

@Html.DropDownListFor(t => t.tabPosition, new SelectList(ViewBag.DdlPositions), new { onclick = Html.Raw("ddlChain(this.id, '" + Html.DisplayNameFor(t => t.relTab) + "', '')") })

и созданный html выглядит как

<select id="tabPosition" name="tabPosition" onclick="ddlChain(this.id, &#39;relTab, &#39;&#39;)">
<option>Start</option>
<option>End</option>
<option>Before</option>
<option>After</option>
</select>

Альтернативно, есть ли лучший способ назначения функции js для ввода в MVC?

благодаря

  • 0
    Браузер должен обработать объекты перед анализом JS; Ваш код должен работать нормально.
  • 4
    Однако лучше добавить обработчик в код JS и избегать атрибутов обработчика событий. en.wikipedia.org/wiki/Unobtrusive_JavaScript
Показать ещё 1 комментарий
Теги:
razor
asp.net-mvc
asp.net-mvc-4

2 ответа

0

также лучше передать список через модель, а не через ViewBag. Следуя ответам @SLaks, поместите это в свой скрипт

$(document).ready(function(){
    $('#tabPosition').on('change', function(){
        //Your code here for the change event something like
        $('.Selected').val($('#tabPosition :selected').val());
        //which will set an field on your page with class="Selected" to the selected item from your dropdown
    });
}); 
0

Измените первую часть кода на это:

@Html.DropDownListFor(t => t.tabPosition, new SelectList(ViewBag.DdlPositions), new Dictionary<string,string>{{ "data-tab", Model.relTab }})

Элемент select element создается с атрибутом data-tab.

Теперь нам просто нужно создать javascript для чтения значения data-tab и вызвать функцию ddlChain.

$('#tabPosition').on('change', function() {
    var $this = $(this);
    ddlChain($this.attr('id'), $this.attr('data-tab'), ''); 
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню