MVC小系列(四)【向RouteData里扔数据】
向RouteData里扔数据
当Url做路由之后,QueryString里当然是不可能再存你的信息了,而信息包括控制器,action,参数都会存储在RouteData里,而一般这里的信息都是通过前一个页面的href传递过来的,这是正常的,但如果前一个页面不能传过来或者要求的信息只有在本Action里才能被确定,怎么办呢?
解决方法:
手动在Action里面向RouteData里扔数据,
RouteData的工作是在view实现之前,在进行action之后才执行的,所以向RouteData里写信息不会对当前Url地址有影响,
this.RouteData.Values.Add("ObjID", model.ObjID);
//扔到自己的路由表中,并且不在当前URL地址栏上显示,不破坏路由
this.RouteData.Values.Add("TopicFlag", model.TopicFlag);
如果在页面用到了ObjectID,可以直接用Request对象读出来
比如:Request.RequestContext.RouteData.Values["ObjID"]