Asp.net编程 Asp.net代码编写方式(后置代码和内嵌代码)

Asp.net 2.0为构造Asp.net页面的代码有两种途径。

  第一种是在后台编码模式。
   有两种写法,
      方法一是在.aspx.cs中写代码。这样做的好处就是代码和页面内容分离,使代码更清晰。
      方法二是aspx中具有 runat="server" 属性的 script 块中(单文件页)写代码。

      例如:  

        本文下边<script runat="server"> 角本块 “后台CS文件”都有是后台编码模式。

后台参编码模式的代码是由脚本引擎来解释的。

   

  第二种是在内嵌代码模式。

    这种方式类似于旧风格的Asp页面。它是在aspx中将代码写在<%%>之间。

例子如下:    
代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>无标题页</title>
    
    
<%--后置代码--%>
    
<script runat="server">
        string sVal 
= "valTest";
    
</script>

</head>
<body>
    
<form id="form1" runat="server">
        
<asp:Button ID="btnTest" runat="server" Text="BtnTest" />
        
<div>
            
<%--嵌入代码--%>
            
<%for (int i = 0; i < 10; i++)
              {
                  Response.Write(
"<br/>" + i.ToString());
              }
            
%>
            
<br />
            
<%--调用后台GetTime()方法--%>
            Current Time is
<%=GetTime() %>
            
<br />
            
<%--调用在script角本块中的后台代码--%>
            
<%=sVal%>
        
</div>
    
</form>
</body>
</html>

 后台CS文件:

代码
public partial class _Default : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    {

    }
    
/// <summary>
    
/// 得到时间
    
/// </summary>
    
/// <returns></returns>
    public string GetTime()
    {
        
string sTime = "";
        
return sTime = DateTime.Now.ToString();

    }
}

   嵌入式代码块是在呈现页面的过程中执行的服务器代码。块中的代码可以执行编程语句,并调用当前页类中的函数。

这种代码:<% %>代码块与ASP不同,它会被真正地编译——而不是由脚本引擎来解释,即代码是已编译好的,不是解释性的,这样性能会好得多。

对比:
一般情况下,将嵌入式代码块用于复杂的编程逻辑并不是最佳做法,因为当页中的代码与标记混合时,很难进行调试和维护。
此外,由于代码仅在呈现页的过程中执行,因此与将代码置于适当的页处理阶段以执行后台代码或脚本块代码相比,其灵活性大大降低。

嵌入式代码块的部分用途包括:
    将控件元素或标记元素的值设置为函数返回的值,
    将计算直接嵌入到标记或控件属性中。


注:部分内容摘自MSDN

原文地址:https://www.cnblogs.com/scottckt/p/1611898.html