Asp.net mvc 网格选定值中的DropDownListFor不起作用

Asp.net mvc 网格选定值中的DropDownListFor不起作用,asp.net-mvc,Asp.net Mvc,这是我的密码 ViewBag.Years= new SelectList(new[] { new { ID = "1", Name = "1 Year" }, new { ID = "2", Name = "2 Year" }, new { ID = "3", Name = "3 Year" }, }, "ID", "Name", ""); 在这里,我试图为每一行绑定在我的表中 @for (var i = 0; i < Model.Records.Count; i

这是我的密码

ViewBag.Years= new SelectList(new[] 
 { new { ID = "1", Name = "1 Year" }, 
   new { ID = "2", Name = "2 Year" }, 
   new { ID = "3", Name = "3 Year" }, 
 }, "ID", "Name", "");
在这里,我试图为每一行绑定在我的表中

@for (var i = 0; i < Model.Records.Count; i++ ) 
{ 
  @Html.DropDownListFor(m => Model[i].Years, 
       (SelectList)ViewBag.Years}) 
}
for(var i=0;iModel[i]。年, (选择列表)ViewBag.Years}) } 模型[i]。年份为每行发送不同的值,但仍然没有选择正确的项目

public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";



        var data = Enumerable.Range(1, 5).Select(a => new myViewModel
        {
            Description ="Description"+a,
            Years =GetYear(a)  
        }).ToList();



        return View(data);
    }

    private List<SelectListItem> GetYear(int a)
    {
        return Enumerable.Range(1, 50).Select(y => new SelectListItem
        {
            Selected = y==a?true:false,
            Text = y + " Year",
            Value =y.ToString()
        }).ToList();
    }

    public ActionResult About()
    {
        return View();
    }
}

 //Model class is bellow
public class myViewModel
{
    public string Description { get; set; }
    public List<SelectListItem> Years { get; set; }
}


Demo :

公共类家庭控制器:控制器
{
公共行动结果索引()
{
ViewBag.Message=“欢迎使用ASP.NET MVC!”;
var data=Enumerable.Range(1,5)。选择(a=>newmyviewmodel
{
Description=“Description”+a,
年份=GetYear(a)
}).ToList();
返回视图(数据);
}
私有列表GetYear(int a)
{
返回可枚举的范围(1,50)。选择(y=>new SelectListItem
{
所选=y==a?真:假,
Text=y+“年”,
值=y.ToString()
}).ToList();
}
关于()的公共行动结果
{
返回视图();
}
}
//下面是示范班
公共类myViewModel
{
公共字符串说明{get;set;}
公共列表年份{get;set;}
}
演示:

我来自哪里?你为什么不使用
?我忘了我使用的是for循环而不是foreach,我更改了代码请再看一次。你能分享你的模型类吗?您可以
Model.Records.Count
,但也可以访问
Model[i]
。你有自定义索引器吗?您也不会将参数用于lambda表达式。不清楚你想做什么。