当前位置:编程学习 > C#/ASP.NET >>

MVC 获取下拉框的值的问题!

我现在有个页面有一个下拉框,假设绑定了value是1 text是 中国。。。value是2 text是美国,下拉框选择项默认在1上。

我想在打开这个页面的时候,直接获取到1,传给sql语句,显示中国的数据,而我现在只有点击 查询按钮时,才能获取到这个值。。。刚打开页面是null  、、、应该怎么写 --------------------编程问答-------------------- 既然是你传过去的,还需获取么? --------------------编程问答-------------------- js脚本放body最底部 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
既然是你传过去的,还需获取么?


我就一个页面。Control里写了一个ShowData方法,先绑定好了,ViewData["ddl"],然后就执行一个现实数据库数据的方法,其中要传入下拉框ID。。。可我打断点调试,每次这个方法获取到的都是null,而我点击查询打断点,这里就是有值的了。我想一打开页面就能有值。。。初学这个,不知道描述清楚了没有。。

不用MVC时就 用ddl.selectValue 就是的呀 这个怎么写 --------------------编程问答--------------------
引用 2 楼 zhuankeshumo 的回复:
js脚本放body最底部


没明白是什么意思。。我好像没有js脚本咧 都是基本的代码 --------------------编程问答--------------------
引用 4 楼 GJHF_Wuchao 的回复:
Quote: 引用 2 楼 zhuankeshumo 的回复:

js脚本放body最底部


没明白是什么意思。。我好像没有js脚本咧 都是基本的代码
把你代码贴一下呢 --------------------编程问答--------------------
引用 5 楼 zhuankeshumo 的回复:
Quote: 引用 4 楼 GJHF_Wuchao 的回复:

Quote: 引用 2 楼 zhuankeshumo 的回复:

js脚本放body最底部


没明白是什么意思。。我好像没有js脚本咧 都是基本的代码
把你代码贴一下呢


我明天贴。。谢谢你。。我今天刚下班 笔记本没带回来。。。我明天贴这里来。 --------------------编程问答--------------------
引用 3 楼 GJHF_Wuchao 的回复:
Quote: 引用 1 楼 caozhy 的回复:

既然是你传过去的,还需获取么?


我就一个页面。Control里写了一个ShowData方法,先绑定好了,ViewData["ddl"],然后就执行一个现实数据库数据的方法,其中要传入下拉框ID。。。可我打断点调试,每次这个方法获取到的都是null,而我点击查询打断点,这里就是有值的了。我想一打开页面就能有值。。。初学这个,不知道描述清楚了没有。。

不用MVC时就 用ddl.selectValue 就是的呀 这个怎么写
好像首先得应该写在控制器返回视图的的那个方法里吧 --------------------编程问答-------------------- 然后你查询时候再根据条件提交到ShowData获取数据 --------------------编程问答--------------------

        public ActionResult ShowData(int? CurrentPageIndex, string button, string qwert,
            string AreaID_equip, string SpecialtyID_equip, string FuzhuAreaID_equip, string LFE_equip,
            string CycleAlermID_equip, string QualityValidateID_equip)
        {
            try
            {
                //禁止页面被缓存
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.Cache.SetExpires(DateTime.Today.AddYears(-2));

                gStrUserName = HttpUtility.UrlDecode(Request.Cookies["User"].Value.ToString());
                if (Request.Cookies.Get("Right") != null)
                {
                    if (Request.Cookies["Right"].Value.IndexOf(".1.") != -1)//查看权限
                    {
                        ViewData["pageIndex"] = CurrentPageIndex ?? 1; //为了给视图保存用

                        //为了使每次查询时Dropdownlist的选择项不重置
                        ViewData["AreaID"] = new SelectList(GetArea(gStrUserName), "AreaID", "Area", Request.QueryString["AreaID_equip"]);
                    ViewData["SpecialtyID"] = new SelectList(GetSpecialty(gStrUserName), "SpecialtyID", "Specialty", Request.QueryString["SpecialtyID_equip"]);
                    ViewData["FuzhuAreaID"] = new SelectList(GetFuzhuArea(), "FuzhuAreaID", "FuzhuArea", Request.QueryString["FuzhuAreaID_equip"]);
                        ViewData["LFE"] = new SelectList(GetLFE(), "LFE", "FuzhuLFE", Request.QueryString["LFE_equip"]);

                        int pageSize = 15;//每页显示数据个数

                        //在某选项的某页点击某item的编辑后,编辑完毕跳转至该页面时,id==null,pageIndex有值,应将pageIndex赋予id使得页面仍然停留在编辑前的那一页。
                        if (Request.QueryString["pageIndex"] != null && CurrentPageIndex == null)
                        {
                            CurrentPageIndex = Int32.Parse(Request.QueryString["pageIndex"]);
                        }

                        IList lLst = new ArrayList();

                        lLst = HotEquipmentServer.GetAll(CurrentPageIndex ?? 1, pageSize, GetWhere(Request.QueryString["AreaID_equip"], Request.QueryString["SpecialtyID_equip"], Request.QueryString["FuzhuAreaID_equip"], Request.QueryString["LFE_equip"],
                            Request.QueryString["CycleAlermID_equip"], Request.QueryString["QualityValidateID_equip"], gStrUserName));

                        if (lLst.Count == 0)//说明该页无数据
                        {
                            CurrentPageIndex = 1;
                            lLst = HotEquipmentServer.GetAll(CurrentPageIndex ?? 1, pageSize, GetWhere(Request.QueryString["AreaID_equip"], Request.QueryString["SpecialtyID_equip"], Request.QueryString["FuzhuAreaID_equip"], Request.QueryString["LFE_equip"],
                            Request.QueryString["CycleAlermID_equip"], Request.QueryString["QualityValidateID_equip"], gStrUserName));
                        }

                        HotEquipment = Common.ConvertIListToList<HotEquipment>(lLst);
                        //用构造函数创建PagedList<T>对象
                        int itemCount = HotEquipmentServer.GetCount(GetWhere(Request.QueryString["AreaID_equip"], Request.QueryString["SpecialtyID_equip"], Request.QueryString["FuzhuAreaID_equip"], Request.QueryString["LFE_equip"],
                            Request.QueryString["CycleAlermID_equip"], Request.QueryString["QualityValidateID_equip"], gStrUserName));

                        //pagedHotEquipment = new PagedList<HotEquipment>(HotEquipment, CurrentPageIndex ?? 1, 10);
                        pagedHotEquipment = new PagedList<HotEquipment>(HotEquipment, CurrentPageIndex ?? 1, pageSize, itemCount);


                        if (Request.IsAjaxRequest())
                            return PartialView("UCMvcPage", pagedHotEquipment);
                        return View(pagedHotEquipment);
                    }
                    else
                    {
                        return RedirectToAction("LogOn", "Account", new { right = "-1" });
                    }
                }
                return RedirectToAction("LogOn", "Account", new { right = "-2" });
            }
            catch
            {
                return RedirectToAction("LogOn", "Account", new { right = "-2" });
            }
        }


上面代码中,ViewData["AreaID"] = new SelectList(GetArea(gStrUserName), "AreaID", "Area", Request.QueryString["AreaID_equip"])中的Request
,都是null. --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
既然是你传过去的,还需获取么?


我贴了代码,来帮我看看好吗.有空
--------------------编程问答-------------------- 快来人帮我看看..

HotEquipmentServer.GetAll 这是我获取所有数据的方法,这个方法参数是页面上的下拉框,可是初次加载这个方法时都是null  只有点击本页面的查询按钮时,才会将下拉框选择的值传进来,我怎么做才能初次时就传进来呢 --------------------编程问答-------------------- 初次加载?你赋初值好了,这个初值你的action是知道的,因为页面的值也是action给它的 --------------------编程问答--------------------
引用 12 楼 charles_y 的回复:
初次加载?你赋初值好了,这个初值你的action是知道的,因为页面的值也是action给它的


我现在是, 页面初次加载时,下拉框已经不是|---请选择---|了,是有一个确切的选项,可我偏偏在ActionResult方法里获取不到,我就不明白为什么了...你是让我给GetAll获取所有数据的方法参数中,赋予下拉框显示的值吗?
那我感觉是凑起来,不是从下拉框获取的. --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
既然是你传过去的,还需获取么?


我现在慢慢理解你的含义了,你是说 View里面的下拉框控件,本来就是初次加载的 ActionResult ShowData方法传过去,也就没有  等下拉框绑定完 再获取一说了 ??  以前webform做都是先绑定 然后再DropDownlist1.selectValue的..........禁锢住了....我理解的对不对啊
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,