MVC 载入不同的MasterPage页面
public class GroupMasterPage : ActionFilterAttribute { private string _masterName; public GroupMasterPage(string masterName) { _masterName=masterName; } public override void OnActionExecuted(ActionExecutedContext filterContext) { base.OnActionExecuted(filterContext); var result = filterContext.Result as ViewResult; if (result != null) { result.MasterName= _masterName; } } }
[GroupMasterPage("SuccessPage")] public ActionResult Index(string orderid,int hotelid,int roomid) { bool IsSendEbooking =_Biz.GetSendEbooking(hotelid, roomid); O_Success Model = new O_Success(); Model.IsSendEbooking = IsSendEbooking; Model.Orderid = orderid; if (IsSendEbooking) { Model.ProcessIFrameURL = ConfigHelper.GetConfigValue("OldSystemUrl") + "/cii/order/fax/faxtohotelpreprocess.asp?orderid=" + orderid; return View("~/Views/SuccessOrder/OrderProcess/index.cshtml",Model); } else { Model.ProcessOrderUrl = ConfigHelper.GetConfigValue("GroupSuccessUrl") + orderid; Model.QuickUrl = string.Format("http://" + UIHelper.GetAuthority().Replace("booking.hotel.", "service.") + "/cii/share/tNetV.asp?module="); return View("~/Views/SuccessOrder/OrderView/index.cshtml",Model); } }
_ViewStart.cshtml 页面
@using Ctrip.HotelReservation.GroupHotel.Extensions; @{ if ((((RazorView)(this.ViewContext.View))).LayoutPath == "") { if (!Url.GetErrorView()) { Layout = "~/Views/Shared/_Layout.cshtml"; } } else { if (!Url.GetErrorView()) { //GroupMasterPage("SuccessPage") 载入路径为~/Views/Shared/SuccessPage.cshtml 模板页 Layout = (((RazorView)(this.ViewContext.View))).LayoutPath; } } }