Установка выбранной опции в MVC3 - PullRequest
8 голосов
/ 08 октября 2011

Так что я могу получить это далеко

string selectedOption = ViewBag.SelectedOption;

<select id="SelectedYear" name="SelectedYear">       
    <option value="2010">2010</option>//if(selectedOption == 2010)...meh...
    <option value="2011">2011</option>             
    <option value="2012">2012</option>
    <option value="2013">2013</option>
</select>

И я знаю, что могу сохранить SelectedOption в div и установить выбранную опцию с помощью jQuery кратким образом после $(document).ready.

Есть ли лаконичный метод для выполнения задачи с прямым MVC3 / бритвой?

Ответы [ 4 ]

15 голосов
/ 08 октября 2011

Что-то вроде:

int selectedOption = ViewBag.SelectedOption;

<select id="SelectedYear" name="SelectedYear">       
    <option value="2010" selected="@(selectedOption == 2010 ? "selected" : "")">2010</option>
    <option value="2011" selected="@(selectedOption == 2011 ? "selected" : "")">2011</option>             
    <option value="2012" selected="@(selectedOption == 2012 ? "selected" : "")">2012</option>
    <option value="2013" selected="@(selectedOption == 2013 ? "selected" : "")">2013</option>
</select>

Как говорится, это такие вещи HtmlHelper.DropDownList для.

Держите свою логику внутри контроллера ипросто передайте IEnumerable через ViewBag .В этот момент вам просто нужно вызвать помощника в представлении:

@Html.DropDownList("optionName", ViewBag.MyOptionsList as IEnumerable<SelectListItem>)
6 голосов
/ 07 ноября 2013
int selectedOption = ViewBag.SelectedOption;


<select id="SelectedYear" name="SelectedYear"> 

<option value="2010" @if(selectedOption == 2010){<text>selected="selected"</text>}>2010</option>

...

</select>
3 голосов
/ 31 октября 2018

TagHelper не допускает код C # в своей области тегов.

Вы можете превратить элемент option в обычный HTML-тег, используя символ !.

Например:

<!option @(ViewBag.CurrrentPage == x ? "selected" : "")>@x<!/option>
3 голосов
/ 22 сентября 2015

Метод, на который ответили в правильном вопросе, пока не работает, лучше использовать следующий пример:

<option value="someValie" @(ViewBag.someVariable == "someValue" ? "selected" : String.Empty)>...</option>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...