我有一个在 masterpage.master.vb 中填充有 Browserhawk 信息的 cookie 集合,例如;
Dim useCSS as boolean = 0
Response.Cookies("Stylesheets").Value = brHawk.Stylesheets
if Response.Cookies("Stylesheets") = True then useCSS = 1
如果 Stylesheets 为 True,我将 useCSS 设置为 1,如果为 false,我将 useCSS 设置为 0 我需要在 masterpage.master 部分访问这些内容,例如;
if useCSS = true
Then load stylesheet
else
Dont load stylesheet
我在寻找正确的语法来使其正常工作时遇到问题。
最佳答案
您需要将其公开为属性才能在标记上使用它。
在隐藏代码中:
Private _useCss As Boolean
Public Property UseCss() As Boolean
Get
Return _useCss
End Get
Set(ByVal value As Boolean)
_useCss = value
End Set
End Property
然后在标记中:
<% If UseCss = True Then %>
Your stylesheet link tag here
<% Else %>
else could be optional if you won't load anything
<% End If %>
或者你可以:
<% If UseCss = True Then
Response.Write("text")
Else
Response.Write("something else")
End If
%>
另一个选择是为您的 head
标记提供一个 ID,并以编程方式向其中添加 CSS 文件。为此,您不需要属性,可以直接使用变量。
在您的标记中:
<head runat="server" id="head">
<%-- whatever you typically place here --%>
</head>
在您的代码隐藏中,例如在页面加载时:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If useCss Then
Dim stylesheet As New HtmlGenericControl("link")
stylesheet.Attributes.Add("rel", "stylesheet")
stylesheet.Attributes.Add("type", "text/css")
stylesheet.Attributes.Add("href", "../css/myCssFile.css")
FindControl("head").Controls.Add(stylesheet)
End If
End Sub
关于asp.net - 如何在 masterpage.master 中访问 masterpage.master.vb 中定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2176659/