/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • RSS订阅

ASP.NET中.aspx页面使用<script runat="server">标记无法输出"</script>"字符串

2014-11-15 十有三 0 浏览:1万+ .NET技术 ASP.NET

今天遇到一个奇怪的问题,在ASP.NET 的.aspx页面中,如果使用了<script runat="server">标记来添加后台的服务端代码,那么在标记中是无法输出"</script>"这个字符串,必须要对"</script>"字符串进行拆分。

之所以无法在<script runat="server"></script>标记里面声明和赋值"</script>"这个字符串,是因为</script>本身作为结束标记,拥有最高的优先级,就像注释符号// 和/**/一样。不过</script>的优先级比注释符号还有高。
例如在一个.aspx页面中有如下代码:

<script runat="server">
    
    string strTemp1="</script>";
            
    StringBuilder strTemp2 = new StringBuilder();
    strTemp2.Append("</script>");     
    
</script>

我们会发现在<script runat="server">中想要赋值和正常的显示"</script>"字符串几乎是不可能的,因为这个字符串作为结束标记,优先级甚至比注释符号的优先级还高,用字符串形式声明的话会提示应输入;或者应输入)的错误(根据不同的情况),如图所示:

</script>导致提示应输入;或者应输入)错误

就算使用注释依然会报错,无法正常的注释掉,依然会有提示错误:

注释符号//和/**/优先级别比结束标记的优先级低

正确的的解放方法是将"</script>"标记进行拆分,比如下面这样写:

<script runat="server">    
    /*
     * 将整个结束标记字符串先拆分后拼接起来,
     * 这样就可以正常的使用字符串赋值了
     */
    
    string strTemp1="</"+"script>";
        
    StringBuilder strTemp2 = new StringBuilder();
    strTemp2.Append("</").Append("script>");
            
</script>

 

另外文章结尾这里说下,之所以会遇到这个问题,是因为最近在DIY修改Discuz!NT论坛的源码。但是Discuz!NT的页面输出代码是放在<script runat="server">标记中的,而且是以字符串拼接的形式将页面HTML拼接起来,最后用Response.Write输出页面HTML字符串。由于页面中需要引用js文件,所以造成结束标记的冲突。


作者:十有三

出处:https://shiyousan.com/post/635516137734590321

版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。


  • 上一篇: Windows XP系统快速启动栏的"显示桌面"图标丢失不见的解决方法
  • 下一篇: ASP.NET 在.aspx页面中使用<script runat="server"></script>标记

相关文章
  • 翻译:Changes to the language setting will not take effect until the environment is restarted.
  • AntiForgeryToken生成过程解析-ASP.NET MVC防伪标记源码学习[上]
  • VS(Visual Studio)按键失灵无法按回车
  • Web 部署任务失败 未能使用指定的进程“Web Management Service”连接到远程计算机
  • ASP.NET MVC 页面静态化操作的思路
  • 解决IIS ASP.NET 网站发布后出现错误 Unable to connect to any of the specified MySQL hosts

文章分类

.NET技术 123 数据库 24 Web前端 21 网站建设运维 37 操作系统与应用 66 程序猿日常 11 开发工具 12 其他随笔 13

文章标签

ASP.NET ASP.NET MVC C# CSS HTML IIS Javascript Linux MongoDB MySql SQL SQL Server Visual Studio Windows系统 版本控制系统 插件工具 服务器 搞笑娱乐 好文分享 软件应用 生活知识 手机问题 随笔 网络知识 网站设计优化 网站维护 养生保健 异常处理 硬件设备 游戏攻略

热门文章

  • IIS8如何安装和使用URL重写工具-URL Rewrite
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • 解决IE11安装升级失败和在安装前需要更新的问题
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
  • VS重构重命名的快捷键

推荐文章

  • 解析ASP.NET中获取不到用户名及注销后User.Identity.IsAuthenticated值依然为true的原因
  • C#中特殊字符存入MySql报错“ERROR 1366: Incorrect string value“
  • 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
  • OneNote使用技巧分享:如何在办公室等公共场合中安全使用私人笔记
  • ASP.NET HTTP 状态字符串无效

友情链接

  • Passingwind的博客
  • 码友网

知识共享许可协议 CC BY-SA 4.0本站作品采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。
闽ICP备15003702号
闽公网安备 35020302035102号