首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

MVC当中,怎么进行参数传递和参数值的获取

2013-11-01 
MVC当中,如何进行参数传递和参数值的获取?比如我以前有一个页面:www.test.com/proList.aspx?page1&quwin

MVC当中,如何进行参数传递和参数值的获取?
比如我以前有一个页面:
www.test.com/proList.aspx?page=1&qu=window&type=system
现在用MVC做就变成了这样的地址:
www.test.com/proList?page=1&qu=window&type=system

proList对应的ActionResult 里面要如何才能获取到地址栏的参数,参数位置应该可以随便换吧?
www.test.com/proList?page=1&qu=window&type=system和
www.test.com/proList?qu=window&type=system&page=1这个是一个意思吧?


另外在一个控制器里面执行完代码后,我要跳转到其他页面并带上一个参数,请问要怎么做?
比如:
        [LoggerFilter()]
        [ExceptionFilter()]
        public ActionResult PostCreate()
        {
            String stTitle = Request.Form["title"];
            String stContent = Request.Form["content"];
            String stDate = Request.Form["updatedate"];

            InfoList il = new InfoList()
            {
                ID = 0,
                ClassID = int.Parse(Request.Form["myclass"]),
                Title = Request.Form["title"],
                Content = Request.Form["content"],
                UpdateDate = DateTime.Parse(Request.Form["updatedate"])
            };
            IContentService iis = ServiceBuilder.BuilderContent();
            iis.Add(il);
            ViewData["infolist"] = il;



            System.Threading.Thread.Sleep(2000);
            ViewData["timess"] = DateTime.Now;
            System.Threading.Thread.Sleep(3000);
            //这里执行完毕后我要跳转到:
www.test.com/postSuccess这个地址,但是需要带一些参数,比如:
www.test.com/postSuccess?post=true&userid=2048&lang=zh-cn
            return View("postSuccess?post=true&userid=2048&lang=zh-cn");这样好像会报错
        }

小弟初学MVC,烦请大家请教!谢谢!


[解决办法]
Request.QueryString["updatedate"]
[解决办法]
对于值的传递,一般使用2中常见的手段 post(表单提交),get(通过url传递参数)。get方式传递参数的时候多个参数的顺序是随便,放在前面和后面都是一样的。但是注意get方式传递是有长度限制的256个字节。
如何获取参数:
 //post请求 
string name = Request["name"].toString(); 
string name   =Request.Form.Get("name").toString(); 

//get请求 
string name = Request.QueryString["name"].toString(); 

页面跳转带从参数可以使用:
  return Redirect("/postSuccess?post=true&userid=2048&lang=zh-cn")这样是可以跳过去


[解决办法]

引用:
       return RedirectToAction("createsuccessfuly", "info", new { q = "s", b = "q" });
用这个也不行,ViewData的东西会丢

redirecttoaction是可以的,你在当前action里面执行代码后,然后跳createsuccessfulyaction,里面把页面跳转的参数带过去,把viewdate的东西也用东西带过去,再在那个createsuccessfulyaction里面再给对应的viewdate赋值一次,或者这里不传viewdate需要的值,直接在那个createsuccessfuly action里赋值(当然,前提是直接在info action里面能直接得到viewdate需要的值)。
总之:就是viewdate是不可以跨页面传的,如果要在createsuccessfuly页面获取,就得在createsuccessfulyaction里面赋值。或者你不用viewdate,用TempData。


[解决办法]
获取参数:

Request.Params["qu"]


跳转页面带参数:

return Redirect("../../Account/Register?canshu="+参数);

热点排行