5

我需要在我的应用程序 (ASP.NET MVC) 上支持不同的母版页。推荐的方法是什么:

  1. 将母版页名称传递给视图。
  2. 存储母版页(在会话中或其他内容中),以便在用户访问期间保持不变。
4

3 回答 3

9

使用自定义基本控制器并从它继承:

Public Class CustomBaseController
    Inherits System.Web.Mvc.Controller

    Protected Overrides Function View(ByVal viewName As String, ByVal masterName As String, ByVal model As Object) As System.Web.Mvc.ViewResult

       Return MyBase.View(viewName, Session("MasterPage"), model)

    End Function

End Class

我在 global.asax Session_Start 中设置了我的 Session 变量:

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)

//programming to figure out your session
Session("MasterPage")="MyMasterPage"

End Sub
于 2009-01-20T11:01:38.783 回答
0

您可以将母版页名称放入会话中,但会话不可靠。我建议把它扔进数据库。

进入页面后,您可以通过访问 page.masterpagefile 更改/设置母版页。这是一个字符串;只需传入 .master 名称即可。

于 2008-11-07T15:12:11.927 回答
-2

为什么不将母版页保留在用户配置文件中?然后只需在 PreLoad 事件上更改它。

http://www.odetocode.com/articles/440.aspx

于 2008-11-07T15:20:05.593 回答