C# ASP.NET MVC:CS1061错误
目前,我正在学习C ASP.NET MVC,并试图根据过去的2008-2017年填写一个下拉列表。在遵循一些在线下拉指南时,我遇到了以下错误: 编译错误:错误为CS1061:不包含“Year”的定义,并且找不到接受类型为“Year”的第一个参数的扩展方法“Year” 我对这个错误一无所知。我甚至不确定这是否是因为下降。请参阅下面的代码 YearViewModel.csC# 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; }
[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属性。