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,后者直接写到输出流

posted @ 2018-07-04 17:43  mirrorspace  阅读(279)  评论(0编辑  收藏  举报