MVC通过下拉菜单过滤一个表不会显示任何内容



我想使用Dropdown表过滤一个表。我可以通过单击下拉列表来选择我在数据库中的模式。问题是,每当我按下带有选定下拉列表的提交按钮时,都不会显示任何内容。我想做的是从下拉列表中选择一个模型(我想是我制作的),然后列出所有必须以我选择的模式玩的游戏。

索引.cshtml

@model nproject.Models.TestViewModel
@using (Html.BeginForm("Index", "Test", FormMethod.Get))
{
<label> Select a mode</label>
@Html.DropDownListFor(f => f.SelectedMode, (List<SelectListItem>)ViewBag.dgr1, "Select")
<input type="submit" value="Filter" />
}
<table>
<tr>
<th>games</th>

</tr>
@foreach (var item in Model.Data)
{
<tr>
<td>@item.GameName)</td>
</tr>
}
</table>

Game.cs

public int GameID{ get; set; }
public string GameName{ get; set; }
public Mode Modes{ get; set; } 

TestViewModel.cs

public int Id { get; set; }
public IEnumerable<Game> Data { set; get; }
public string SelectedMode { set; get; }

模式.cs

public int ModeID{ get; set; }
public string ModeName{ get; set; }

控制器

public class TestController: Controller
{
private readonly GameContext db = new GameContext();
// GET: Test
public ActionResult Index(string selectedMode = "")
{
var vm = new TestViewModel();


List<SelectListItem> deger1 = (from i in db.Mode.ToList()
select new SelectListItem
{
Text = i.ModeName,
Value = i.ModeID.ToString()
}).ToList();
ViewBag.dgr1 = deger1;
var data = db.Game.ToList();
if (!String.IsNullOrEmpty(selectedMode))
{
data = data.Where(x=>x.Modes.ModeName==selectedMode).ToList();
}

vm.Data = data.ToList();    
return View(vm);
}

我将控制器中的行从:data = data.Where(x=>x.Modes.ModeName==selectedMode).ToList();更改为解决了CCD_ 2-nad问题。

最新更新