MVC通过下拉列表过滤桌子没有显示
我想使用下拉表过滤表。 我可以通过单击下拉列表来选择DB中的模式。 问题是,每当我按下提交按钮并使用选定的下拉列表时,什么都不会显示。 我想做的是从下拉菜单中选择一个模型(我想我做了一个模型),然后列出所有必须玩模式的游戏,就像我选择的那样。
index.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);
}
I want to filter a table using the Dropdown table.
And I can select the modes I have in my DB by clicking the dropdown.
The problem is whenever I press submit button with a selected dropdown nothing shows up.
What I want to do is select a model from the dropdown(which I made, I guess) and then list all the games which have to play mode as the same I selected.
Index.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; }
Mode.cs
public int ModeID{ get; set; }
public string ModeName{ get; set; }
Controller
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);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我从:
data = data.Where(x =&gt; x.modes.modename == selectedmode).tolist();
更改了控制器中的行。到
data = data.Where(x =&gt; x.modes.modeid.tostring()== selectionMode).tolist();
nad问题已解决。I changed the line in controller from:
data = data.Where(x=>x.Modes.ModeName==selectedMode).ToList();
to
data = data.Where(x=>x.Modes.ModeID.ToString()==selectedMode).ToList();
nad problem is solved.