Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 简单下拉列表过滤器?_C#_Model View Controller - Fatal编程技术网

C# 简单下拉列表过滤器?

C# 简单下拉列表过滤器?,c#,model-view-controller,C#,Model View Controller,这似乎是一个经常被提及的话题,但其他帖子对于我想做的事情来说似乎过于复杂了。。下面是我在索引视图中创建的dropdownlist。我只想用这个下拉列表来改变我视图中的过滤器 索引 @Html.DropDownList(“页面过滤器”,ViewData[“pgFilter”]作为列表) 控制器 List<SelectListItem> li = new List<SelectListItem>(); li.Add(new SelectListIt

这似乎是一个经常被提及的话题,但其他帖子对于我想做的事情来说似乎过于复杂了。。下面是我在索引视图中创建的dropdownlist。我只想用这个下拉列表来改变我视图中的过滤器

索引

@Html.DropDownList(“页面过滤器”,ViewData[“pgFilter”]作为列表)

控制器

       List<SelectListItem> li = new List<SelectListItem>();
       li.Add(new SelectListItem { Text = "Status & Test", Value = "0" });
       li.Add(new SelectListItem { Text = "Status", Value = "1" });
       li.Add(new SelectListItem { Text = "Test", Value = "2" });
       li.Add(new SelectListItem { Text = "No Filter", Value = "3" });
       ViewData["pgFilter"] = li;
List li=新列表();
li.Add(新建SelectListItem{Text=“Status&Test”,Value=“0”});
li.Add(新建SelectListItem{Text=“Status”,Value=“1”});
li.Add(新建SelectListItem{Text=“Test”,Value=“2”});
li.Add(新建SelectListItem{Text=“No Filter”,Value=“3”});
ViewData[“pgFilter”]=li;
这个想法很基本。如果选择了第一项,“状态”字段和“测试”字段都将使用特定过滤器进行过滤。他们也可以选择只选择一个过滤器或不选择过滤器


但是,我一直在努力寻找一个简单的解决方案,将所选项目传递给控制器以运行If语句。

如果不使用任何模型,则可以使用以下方法

控制器:

public class HomeController : Controller
    {
           public ActionResult MyDropDownView()
        {
            // shows your form when you load the page
            List<SelectListItem> li = new List<SelectListItem>();
            li.Add(new SelectListItem { Text = "Status & Test", Value = "0" });
            li.Add(new SelectListItem { Text = "Status", Value = "1" });
            li.Add(new SelectListItem { Text = "Test", Value = "2" });
            li.Add(new SelectListItem { Text = "No Filter", Value = "3" });
            ViewData["pgFilter"] = li;
            return View();
        }

        [HttpPost]
        public ActionResult MyResultAction(string selectedFilterId)
        {
            //do what ever you want
            return View();
        }
    }
公共类HomeController:控制器
{
公共操作结果MyDropDownView()
{
//加载页面时显示表单
List li=新列表();
li.Add(新建SelectListItem{Text=“Status&Test”,Value=“0”});
li.Add(新建SelectListItem{Text=“Status”,Value=“1”});
li.Add(新建SelectListItem{Text=“Test”,Value=“2”});
li.Add(新建SelectListItem{Text=“No Filter”,Value=“3”});
ViewData[“pgFilter”]=li;
返回视图();
}
[HttpPost]
公共操作结果MyResultAction(字符串selectedFilterId)
{
//你想干什么就干什么
返回视图();
}
}
视图:

@using (Html.BeginForm("MyResultAction", "Home"))
        {

            @Html.DropDownList("selectedFilterId", ViewData["pgFilter"] as List<SelectListItem>, "--pick--", new
{
    title = "Pick Filter",
    onchange = "submit();"
});

        }
@使用(Html.BeginForm(“MyResultAction”、“Home”))
{
@DropDownList(“selectedFilterId”,ViewData[“pgFilter”]作为列表,“--pick--”,新建
{
title=“选择过滤器”,
onchange=“submit();”
});
}
滑动的项目值将被传递到
主页
控制器的
MyResultAction

希望这有帮助