ASP.NET MVC:CS1061错误

时间:2018-05-17 21:44:11

标签: c# asp.net-mvc razor

目前我正在研究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 :(得分:0)

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

@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>

View不会返回也不会使用YearViewModel的集合。它通过ViewBag 接收一个,但那是另一个故事。