页头元素中的角度括号

1 html javascript c# asp.net

我是ASP.NET的新手.PHP经验(meaby导致此问题)和Iam在将数据从codebehind传递到view-source时遇到小问题.

我在代码隐藏方面声明了字符串变量,例如:

    ...
    public string mystring = "Scotty";
    protected void Page_Load(object sender, EventArgs e)
    {
      ...
Run Code Online (Sandbox Code Playgroud)

所以现在我想在视图代码中使用它,但当我把它放在尖括号(<%:或<%=)并将它放在head元素中时,我无法访问此值.另一方面,当我把它放在BODY元素时,一切都很好.我失败的例子(简化):

 <head runat="server">
   <script language="javascript">
      function beamMeUp()
      {
              alert(<%=mystring;%>);
      }
   </script>
 </head>
 <body>
     <input type="button" onclick="javascript:beamMeUp" value="Warp6" />
 </body>
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释为什么我不能在HEAD中使用它(<%= mystring;%>)但我可以在BODY中使用它吗?最好的祝福

hun*_*ter 5

使用时不需要分号<%=.把它想象成写作:

<% Response.Write(mystring); %>
Run Code Online (Sandbox Code Playgroud)

您也希望将其包装在引号中.

alert("<%=mystring %>");
Run Code Online (Sandbox Code Playgroud)

没有引号将是: alert(Scotty);

除非你有一个调用的javascript变量,否则没有多大意义Scotty.它应该给你一个警告框显示undefined

代码隐藏变量mystring可在<head>.C#IntelliSense没有显示它,因为它在<script>标签内.