ASP.NET MVC: ошибка CS1061 - PullRequest
       2

ASP.NET MVC: ошибка CS1061

0 голосов
/ 18 мая 2018

В настоящее время я изучаю C # ASP.NET MVC и пытался заполнить раскрывающийся список на основе прошлого года (2008-2017). После ознакомления с каким-либо руководством в выпадающем меню я обнаружил эту ошибку:

Ошибка компиляции: «Ошибка» CS1061: Не содержит определения для «Год» и не найден метод расширения «Год», принимающий первый аргумент типа ».«

Я совершенно ничего не понимаю об этой ошибке. Я даже не уверен, что это из-за выпадающего списка или нет. См. Ниже мой код

YearViewModel.cs

[Required]
[Display(Name = "Year")]
public int Year{ get; set; }

YearController.cs

public ActionResult Index()
{
    List<int> last10Years = new List<int>();
    int currentYear = DateTime.Now.Year;
    for (int i = currentYear - 10; i < currentYear; i++)
    {
        last10Years.Add(i);
    }
    ViewBag.LastTenYears = new SelectList(last10Years);
    return View();
}

Index.cshtml

@model IEnumerable<Practice.Models.YearViewModel>
<div>
    <dl class="dl-horizontal">
        <dt>@Html.LabelFor(m => m.Year)</dt>
        <dd>@Html.DropDownList("Last Ten Years", (IEnumerable<SelectListItem>)ViewBag.LastTenYears, "Select A Year")</dd>
    </dl>
</div>

Ошибка выделена в этой области

<dt>@Html.LabelFor(m => m.Year)</dt>

Примечание: я пытался найти решение в Интернете, но оно не было успешным

1 Ответ

0 голосов
/ 18 мая 2018

Это довольно легко исправить:

@model YearViewModel
<div>
    <dl class="dl-horizontal">
        <dt>@Html.LabelFor(m => m.Year)</dt>
        <dd>@Html.DropDownList("Last Ten Years", (IEnumerable<SelectListItem>)ViewBag.LastTenYears, "Select A Year")</dd>
    </dl>
</div>

Представление не возвращается и не работает с коллекцией YearViewModel. получает один через ViewBag, но это другая история.

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