每个用户都有自己的模板页,cnblogs也有这种功能,不知道是怎样做的- -
在MVC里实现,我在Controller里加了1个过滤。以下代码的意思是在“返回执行的时候”修改返回的模板页。
protected override void OnResultExecuting(ResultExecutingContext filterContext)
{
ActionResult actionResult = filterContext.Result;//获取ActionResult
if (!actionResult.GetType().Equals(typeof(ViewResult)))//这里用于过滤不是返回ViewResult的ActionResult
{
base.OnResultExecuting(filterContext);
return;
}
ViewResult viewResult = (ViewResult)actionResult;
string id = filterContext.RouteData.Values["xxx参数"].ToString().ToLower();//获取路由中的参数
ViewData["xx"] = "xxxx";//模板页需要的数据还可以在这里赋
viewResult.MasterName = string.Format(MASTER_PATH, id);//设置模板页
filterContext.Result = viewResult;//赋予新的ViewResult
base.OnResultExecuting(filterContext);
}


浙公网安备 33010602011771号