C# ASP.NET MVC:CS1061错误

C# ASP.NET MVC:CS1061错误,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,目前,我正在学习C ASP.NET MVC,并试图根据过去的2008-2017年填写一个下拉列表。在遵循一些在线下拉指南时,我遇到了以下错误: 编译错误:错误为CS1061:不包含“Year”的定义,并且找不到接受类型为“Year”的第一个参数的扩展方法“Year” 我对这个错误一无所知。我甚至不确定这是否是因为下降。请参阅下面的代码 YearViewModel.cs [Required] [Display(Name = "Year")] public int Year{ get; set; }

目前,我正在学习C ASP.NET MVC,并试图根据过去的2008-2017年填写一个下拉列表。在遵循一些在线下拉指南时,我遇到了以下错误:

编译错误:错误为CS1061:不包含“Year”的定义,并且找不到接受类型为“Year”的第一个参数的扩展方法“Year”

我对这个错误一无所知。我甚至不确定这是否是因为下降。请参阅下面的代码

YearViewModel.cs

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

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>

注意:我确实尝试在线查找解决方案,但没有成功

这是一个非常简单的解决方案:

@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接收到一个,但这是另一个故事。

模型是IEnumerable而不是YearViewModel您需要集合中的一个元素来引用Year属性。