微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在ASP.NET中将公共字符串变量打印到页面上

如何解决在ASP.NET中将公共字符串变量打印到页面上

| 在这里可以忽略一些基本内容,但是我试图设置一个变量并将其打印在页面上的多个位置。 后面的代码
public string myVariable { get {return \"40\"; } }
页:
<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/main.css?v=<%=myVariable%>\" />
输出
<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/main.css?v=&lt;%=myVariable %>\" />
似乎与引号有关,因为当我将其带到href之外时,这会起作用。我发现如果在代码段中放置一个字符串,它会很好地工作。 这可行,但不是我想要的:
<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/main.css?v=<%=\"40\"%>\" />
这种行为背后的逻辑是什么,我需要做些什么才能使其起作用?我也会选择一种更优雅的方法。     

解决方法

您需要像这样单引号html属性:
<link rel=\"stylesheet\" type=\"text/css\" href=\'/css/main.css?v=<%=myVariable%>\' />
我一直在使用此标记,尤其是在要创建锚标记的中继器中
<a href=\'PageToLinkTo.aspx?id=<%# DataBinder.Eval(Container.DataItem,\"Id\")%>\'>Link Text</a>
这仅适用于aspx页面的正文。如果您在aspx页的顶部有link标签,请查看此问题以获取更多信息:Expression标签绑定字符串变量的问题     ,您为什么不这样做呢?
<link rel=\"stylesheet\" type=\"text/css\" <%= (\"href=\'/css/main.css?v=\" + myVariable + \"\'\") %> />
    ,我今天实际上遇到了同样的问题,并通过使用自定义代码表达式生成器解决了该问题。 您的代码将如下所示:
<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/main.css?v=<%$ Code:myVariable%>\" />
在这里可以找到我使用的一个很好的教程,我可以对其进行修改以适合我的应用程序。如果您需要在服务器端控件中添加代码,这也将起作用。 这真的很容易实现。 这是我添加到web.config中的内容:
   <compilation debug=\"true\">
      <expressionBuilders>
        <add expressionPrefix=\"Code\" type=\"CodeExpressionBuilder\"/>
      </expressionBuilders>
   </compilation>
在我的App_Code文件夹中,我创建了ExpressionBuilder.vb:
Imports Microsoft.VisualBasic
Imports System.Web.Compilation
Imports System.CodeDom

<ExpressionPrefix(\"Code\")> _
Public Class CodeExpressionBuilder
    Inherits ExpressionBuilder

    Public Overrides Function GetCodeExpression(ByVal entry As BoundPropertyEntry,ByVal parsedData As Object,ByVal context As ExpressionBuilderContext) As CodeExpression
        Return New CodeSnippetExpression(entry.Expression)
    End Function

End Class
这就是我要做的所有工作。     ,尝试这个:
<link rel=\"stylesheet\" type=\"text/css\" href=<%=\"/css/main.css?v=\"+myVariable %> />
    ,AFAIK,整个属性必须是一个代码块,例如:
href=\'<%= \"css/main.css?v=\" + myVariable %>\'
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。