MVC通过下拉列表过滤桌子没有显示

发布于 2025-02-06 12:40:28 字数 2076 浏览 3 评论 0原文

我想使用下拉表过滤表。 我可以通过单击下拉列表来选择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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱殇璃 2025-02-13 12:40:28

我从: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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文