MVC使用记录
如何获得MVC中,控制器和方法名字.这可以用于给当前选定菜单加个选定样式
获取控制器名称:(在View中写法)
ViewContext.RouteData.Values["controller"].ToString();
在Action中写法
RouteData.Values["controller"].ToString();
获取Action名称:(在View中写法)
ViewContext.RouteData.Values["action"].ToString();
在Action中写法
RouteData.Values["action"].ToString();
其实就是获取RouteData键值对里的数据
ViewContext.RouteData.Values[名称].ToString();
如:ViewContext.RouteData.Values["ID"].ToString(); 获取ID的值
在area中这样得到名称
在代码中:
ControllerContext.RouteData.DataTokens["area"]
在View中:
ViewContext.RouteData.DataTokens["area"]
有什么用处
在页面上要显示当前点击的菜单时,可以将这个ACTION名字传到页面上,页面里对应菜单项也用这个名字标记.然后用脚本通过这标记找
到该菜单项然后给它加个选中样式.当然了,这是每次都刷新的网页,对了菜单区不动的AJAX网页来讲,这个方法就没必要了.
RenderPartial Partial RenderAction Action方法
RAZOR引擎中使用这些方法可以载入页面的一部分,具体有这几个方法,页面呈现效果一样,但是用途有点区别
1. Html.RenderPartial("viewpath","model")
这个用于载入分部视图"viewpath",有数据"model",它的返回值为void,它直接写到输出流
2. Html.Partial("viewpath","model")
它返回MVCHTMLSTRING,不直接写到输出流
3. RenderPage("pageurl", new object[] {3,2,1 })
载入一个视图,后面可带参数.如果要获得传过来的参数,使用PageData["param"]
4.Html.Action Html.RenderAction
这两个会调用一个控制器/方法,区别与1,2一样,前者会返回MVCHTMLSTRING,后者直接写到输出流