C # ASP.NET MVC view ошибка компиляции раскрывающегося списка CS0161 - PullRequest
0 голосов
/ 10 декабря 2018
@model IEnumerable<Calendar.Models.CheckDays

<p>
    @using (Html.BeginForm())
    {
        <table>
            <tr>
                <th>
                    @Html.ActionLink("Create New", "Create")
                </th>
                <th>
                    @Html.DropDownListFor(model => model.DayOfWeek, htmlAttributes: new { @class = "form-control" })
                </th>
                <th>
                    <input type="button" value="Search" />
                </th>
            </tr>

        </table>
    }

</p>
   <tr>
        <th>
            @Html.DisplayNameFor(model => model.DayOfWeek)
        </th>

    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.DayOfWeek)
            </td>
            </td>
        </tr>
    }

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

"Сообщение об ошибке компилятора: CS1061: 'IEnumerable' делаетне содержит определения 'DayOfWeek' и не найден метод расширения 'DayOfWeek', принимающий первый аргумент типа 'IEnumerable' (вам не хватает директивы using или ссылки на сборку?) "

Строка с ошибками:

  Html.DropDownListFor(model => model.DayOfWeek, htmlAttributes: new { @class = "form-control" })".

Нужно ли что-то делать в модели или у меня синтаксические ошибки?

1 Ответ

0 голосов
/ 10 декабря 2018

Вы неправильно поняли, для чего предназначен первый параметр.Он указывает, куда должен идти выбранный элемент.Это для переменной selectedItem.Проверьте это сообщение в блоге: https://odetocode.com/blogs/scott/archive/2013/03/11/dropdownlistfor-with-asp-net-mvc.aspx. Вы должны создать отдельный класс для модели со списком элементов и переменной SelectedDayOfWeek.

Класс модели:

public class CheckDaysViewModel 
{
  public IEnumerable<CheckDays> CheckDays {get;set;}
  public IEnumerable<SelectListItem> CheckDaysAsSelectedList => this.CheckDays.Select(e => new SelectListItem(e.DayOfWeek, e.DayOfWeek));
  public CheckDays SelectedDay {get;set;}

}

cshtml

@model CheckDaysViewModel

<p>
    @using (Html.BeginForm())
    {
        <table>
            <tr>
                <th>
                    @Html.ActionLink("Create New", "Create")
                </th>
                <th>
                    @Html.DropDownListFor(m => m.SelectedDay, Model.CheckDaysAsSelectedList, null, htmlAttributes: new { @class = "form-control" })
                </th>
                <th>
                    <input type="submit" value="Search" />
                </th>
            </tr>

        </table>
    }
</p>

<table>

<tr>
    <th>
        @Html.DisplayNameFor(m => m.CheckDays.First().DayOfWeek)
    </th>
</tr>

    @foreach (var item in Model.CheckDays)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.DayOfWeek)
            </td>
        </tr>
    }

</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...