ASP.NET 在.aspx页面中使用<script runat="server"></script>标记

最近这段时间在维护一个旧的ASP.NET项目,发现项目中有使用<script runat="server"></script>标记来插入后台的服务端代码,于是写下本文做个笔记。

其实在ASP.NET项目中使用这种标记应该是已经很少见了,随着ASP.NET MVC开始流行起来,再加上ASP.NET Web Form越来越完善(WebForm基本都是用Codebehind代码后置),只有在一些旧项目中偶尔会看到使用这种标记来嵌入后端代码。

大概的代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm4.aspx.cs" Inherits="WebApplication1.WebForm4" %>
<html>
<head></head>
<body>
<script runat="server">
       
    public string strWelcome;
    public string GetWelcomeString()
    {
        return "欢迎访问该页面";        
    }
    override protected void OnInit(EventArgs e)
    {
        strWelcome = GetWelcomeString();
        Response.Write(strWelcome);
    }
</script>
</body>
</html>

显示结果如图:ASP.NET 在.aspx页面中使用<script runat="server"></script>标记
我们可以看到在<script runat="server">标记中写的代码和在后端.aspx.cs代码文件(代码隐藏类文件)中的写法完全一样,不仅可以声明方法变量,还可以重写OnInit初始化函数。

还有一点,在该标记中声明的方法变量的优先级,比在.aspx.cs代码文件中的方法变量优先级高,即如果在标记中和代码文件中同时声明了一样的方法和变量,那么只有标记中的方法和变量有效。  

另外要注意的是,在<script runat="server">标记中,使用#region #endregion这个预处理器指令无法折叠,一些代码区块也无法折叠,代码一多阅读性就差。

所以建议最好还是不用要这个标签,最好写在后端的.aspx.cs文件中,这也符合ASP.NET的Code Behind设计(代码后置技术),将服务端代码和前段代码分离,加强代码可读性和方便代码后期维护。
 




原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98365.html

(0)
上一篇 2021年8月21日
下一篇 2021年8月21日

相关推荐

发表回复

登录后才能评论