MVC中的传参并在View中获取

首先action跳转的模式有如下:

  • redirecttoaction("index");//一个参数时在本controller下,不传入参数。
  • redirecttoaction(actionname,controllername) //可以直接跳到别的controller.
  • redirecttoroute(new {controller="home",action="index"});//可跳到其他controller
  • redirecttoroute(new {controller="home",action="index", id=param});//可跳到其他controller,带参数。
  • response.redirect("index?id=1");//适用于本controller下的方法名称,可带参数。
  • return redirect("index");//适用于本controller下的方法名称。
  • return view("index"); //直接显示对应的页面 不经过执行controller的方法。
  • return view("~/views/home/index.aspx");//这种方法是写全路径,直接显示页面,不经过controller方法
  • return view();//直接显示页面,不经过controller方法

在View中跳转直接写全路径记录/home/index?msg=11

举例:RedirectToAction("Index","Home",new {msg="操作成功",name="admin"});

 

然后如果是在action方法中接收参数直接Index(string msg,string name)即可获取到传过来的参数,如果不想这么接收也可以使用如下方式

  • 如果你是通过原始的index?msg=11&name=simmer则可以使用Request.QueryString["msg"] ,则在View中则是@Request.QueryString["msg"]
  • 如果你采用了路由机制的传参index/11/simmer则可以使用Html.ViewContext.RouteData.Values["msg"]或Request.RequestContext.RouteData.Values["msg"]
posted @ 2016-06-22 01:35  Chris_在IT道路上前行  阅读(283)  评论(0编辑  收藏  举报