Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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
Javascript 将参数从Vew传递到控制器_Javascript_Asp.net Mvc - Fatal编程技术网

Javascript 将参数从Vew传递到控制器

Javascript 将参数从Vew传递到控制器,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我试图将2个值从视图传递回控制器。 我有两个问题: 1-我成功地传递了1个值,但我不确定我的问题是来自视图还是控制器。我正在尝试传递下拉列表中更改的值。当前,当我进行任何选择时,没有任何更改。它确实使用以下URL:尽管出于某种原因,选择技师时会清除状态 以下是我如何尝试的代码: 视图: 控制器: public ActionResult Index(string Status, string Tech) { var helpdesk = from m

我试图将2个值从视图传递回控制器。 我有两个问题:

1-我成功地传递了1个值,但我不确定我的问题是来自视图还是控制器。我正在尝试传递下拉列表中更改的值。当前,当我进行任何选择时,没有任何更改。它确实使用以下URL:尽管出于某种原因,选择技师时会清除状态 以下是我如何尝试的代码: 视图:

控制器:

    public ActionResult Index(string Status, string Tech)
        {
            var helpdesk = from m in db.HelpDesks
                          where m.Status == Status || Status == null || Status == "" &&
                                m.Technician == Tech || Tech == null || Tech == ""
                           select m;

            List<SelectListItem> Stat = new List<SelectListItem>()
            {
                new SelectListItem { Text = "All", Value = "" },
                new SelectListItem { Text = "New", Value = "New" },
                new SelectListItem { Text = "Complete", Value = "Complete" },
            };

            List<SelectListItem> Technician = new List<SelectListItem>()
            {
                new SelectListItem { Text = "All", Value = "" },
                new SelectListItem { Text = "Steve", Value = "Steve" },
                new SelectListItem { Text = "Greg", Value = "Greg" },
            };


            ViewBag.Stat = Stat;
            ViewBag.Technician = Technician;


            return View(helpdesk.ToList());
        }

我的第二个问题是,当页面重新加载时,如何让DropDownList停留在选择中?

是否有为此定义的路由?我这样问是因为你说你在第二个参数上遇到了问题,这个参数叫Tech,但在你的URL中它叫technique。如果你做了URL查询字符串呢?Status=New&Tech=Steve,那么它匹配吗?好的,我应该抓住它。所以它现在可以工作了-但取决于我选择的一个-另一个是空的。每次我选择on时,它们都默认返回all和all。因此,如果我在页面刷新时选择Status New(状态新建),它会显示New(新建)的所有状态,但会清除Tech(技术),反之亦然,因此我一次只能得到一个过滤器。这有意义吗?如何让下拉列表记住刷新后选择的内容?以下是URL使用情况:单击状态:我没有选择的下拉列表中缺少字符串。单击分配:在我回答这个问题之前,我确实在您的代码中看到另一个输入错误,您的C代码正在将某些内容分配给ViewBag.Stat,但在您的视图中,您正在请求ViewBag.Assigned作为状态下拉列表,因此如果尚未更正,请执行此操作并查看您的情况。如果您仍然有问题,请更新代码以反映修复,以便我可以更好地帮助您。谢谢,好的。我已经更新了代码。谢谢
    public ActionResult Index(string Status, string Tech)
        {
            var helpdesk = from m in db.HelpDesks
                          where m.Status == Status || Status == null || Status == "" &&
                                m.Technician == Tech || Tech == null || Tech == ""
                           select m;

            List<SelectListItem> Stat = new List<SelectListItem>()
            {
                new SelectListItem { Text = "All", Value = "" },
                new SelectListItem { Text = "New", Value = "New" },
                new SelectListItem { Text = "Complete", Value = "Complete" },
            };

            List<SelectListItem> Technician = new List<SelectListItem>()
            {
                new SelectListItem { Text = "All", Value = "" },
                new SelectListItem { Text = "Steve", Value = "Steve" },
                new SelectListItem { Text = "Greg", Value = "Greg" },
            };


            ViewBag.Stat = Stat;
            ViewBag.Technician = Technician;


            return View(helpdesk.ToList());
        }