MVC根据用户角色选择模版页master
首先,我们要重写一个View方法,才能更好的返回指定的master页面……
首先,我们要重写一个View方法,才能更好的返回指定的master页面
对于前台controller来说,我们建立一个它的基类
| 以下是代码片段: /// <summary> /// 前台Controller的基类, /// 提供一些共同属性和方法 /// Created By : 张占岭 /// Created Date : 2011-10-17 /// Modify By: /// Modify Date: /// Modify Reason: /// </summary> public abstract class BaseController : Controller { /// <summary> /// 根据用户角色,返回它的模版页 /// </summary> protected string MasterFile { get { return UIHelper.GetMasterPage(Tsingda.XXB.Common.WebSession.UserRole); } } /// <summary> /// 重写controller的View方法,使它可以根据用户角色应用指定视图 /// </summary> protected new ViewResult View(string viewName, object model) { ViewData.Model = model; return new ViewResult { ViewName = viewName, MasterName = this.MasterFile, ViewData = ViewData, TempData = TempData }; } protected new ViewResult View(object model) { return this.View(null, model); } } |
我们根据角色来选择不同的模版页:
| 以下是代码片段: /// <summary> /// 前台通用方法 /// </summary> public partial class UIHelper { /// <summary> /// 根据用户角色,得到指定的模板 /// <param name="role"></param> /// <returns></returns> public static string GetMasterPage(Tsingda.XXB.Common.CustomEnum.UserRole role) { string masterPageFile = ""; switch (role) { case Common.CustomEnum.UserRole.Student: masterPageFile = "~/Views/Shared/StudentClassCenter.Master"; break; case Common.CustomEnum.UserRole.Teacher: masterPageFile = "~/Views/Shared/TeacherCenter.Master"; break; case Common.CustomEnum.UserRole.Parents: masterPageFile = "~/Views/Shared/ParentCenter.Master"; break; case Common.CustomEnum.UserRole.Agents: break; case Common.CustomEnum.UserRole.Visitor: break; } return masterPageFile; } } |

浙公网安备 33010602011771号