Sự khác nhau giữa <%= %> và <%# %>

Khi sang làm việc với ASP.NET MVC, chúng ta phải làm việc nhiều hơn với thẻ và trong ASP.NET. Và thường thì khó phân biệt được sự khác nhau giữa các thẻ đó. Sau đây là đoạn code

Trang default.aspx

<%@ Page Language=”C#” AutoEventWireup=”true” CodeBehind=”Default.aspx.cs” Inherits=”Difference._Default” %>

<!–DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&gt;

<html xmlns=”http://www.w3.org/1999/xhtml&#8221; >

<head runat=”server”>

<title><!–title>

<!–head>

<body>

<form id=”form1″ runat=”server”>

<div>

<p>Dấu = : <%= this.TestValue %><!–p>

<p>Dấu # : <%# this.TestValue %><!–p>

<p>Thuộc tính trong dấu = : <asp:Label runat=”server” ID=”_equals” Text=”<%= this.TestValue %> /><!–p>

<p>Thuộc tính trong dấu # : <asp:Label runat=”server” ID=”_pound” Text=”<%# this.TestValue %> /><!–p>

<!–div>

<!–form>

<!–body>

<!–html>

Và đây là CodeBehind


using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace Difference

{

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

_testValue = “2”;

}

protected void Page_PreRenderComplete(object sender, EventArgs e)

{

//DataBind();

_testValue = “3”;

}

public string TestValue

{

get { return _testValue; }

}

private string _testValue = “1”;

}

}



Kết quả khi chạy như sau:

– Nếu chưa comment đoạn code DataBind(); trong PreRenderComplete

Dấu = : 3

Dấu # :

Thuộc tính trong dấu = :

Thuộc tính trong dấu # :



– Nếu bỏ comment đoạn DataBind();



Dấu = : 3

Dấu # : 2

Thuộc tính trong dấu = :

Thuộc tính trong dấu # : 2





Kết quả trên là do:

  1. được thực hiện tại thời gian render trang web
  2. được thực hiện khi ta gọi phương thức DataBing(), và thẻ này sẽ không được thực hiện nếu ta không gọi phương thức DataBind()
  3. có thể được sử dụng trong thuộc tính của các server controls, còn không thể làm thuộc tính cho các server controls.

One thought on “Sự khác nhau giữa <%= %> và <%# %>

  1. Minh Nguyễn says:

    hì, a Hà Đoàn Mạnh đang học MVC à, có thể cho e IM để liên lạc được không vì e cũng đang theo đuổi ngôn ngữ lập trình mới mẻ này🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s