首先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"]