代码之家  ›  专栏  ›  技术社区  ›  Shaun

ASP。NET MVC:CS1061错误

  •  -2
  • Shaun  · 技术社区  · 6 年前

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

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

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

    YearViewModel。反恐精英

    [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();
    }
    

    指数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 回复  |  直到 6 年前
        1
  •  0
  •   Camilo Terevinto Chase R Lewis    6 年前

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

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