#c# #html #linq #asp.net-core #asp.net-core-mvc
#c# #HTML #linq #asp.net-core #asp.net-core-mvc
Вопрос:
У меня есть страница Razor со следующим кодом для создания выпадающего списка от 1 до 31 дня месяца. Выпадающий список отображается правильно в браузере, но в выводе HTML отсутствует свойство value (за исключением первого параметра, который добавляется вручную).
Как я могу заставить его отображать свойство value?
@Html.DropDownListFor(model => model.Day, new SelectList(System.Linq.Enumerable.Range(1, 31)), string.Empty, new { @class = "form-control" })
Визуализированный вывод:
<select class="form-control" data-val="true" id="Day" name="Day">
<option value=""></option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select>
Комментарии:
1. @RyanWilson
System.Linq.Enumerable.Range(1, 31).Select(z => new SelectListItem(z.ToString(), z.ToString()).ToList()
не компилируется. Я изменил его наEnumerable.Range(1, 31).Select(t => new SelectListItem(t.ToString(), t.ToString())).ToList();
, и теперь он показываетtype
элемент списка выбора в раскрывающемся списке imgur.com/a/SYVpF9P
Ответ №1:
Это то, что я в итоге сделал:
Контроллер:
ViewBag.Days = Enumerable.Range(1, 31).Select(t => new { Value = t, Text = t });
Вид:
@Html.DropDownListFor(model => model.Day, new SelectList(ViewBag.Days, "Value", "Text"), string.Empty, new { @class = "form-control" })