ASP.NET “özel” etiketleri


232

Bunun gibi "özel" ASP.NET etiketlerinin resmi adı nedir:

<%# %>
<%= %>
<%@ %>
<%$ %>

Bunlar için kavramsal veya iyi bilinen adı bulamıyorum, bu yüzden daha fazla bilgi aramakta sorun yaşıyorum. Bonus olarak, herkes bana tüm olası "özel etiketler" hakkında hızlı bir bilgi verebilir ve her biri ne yapar (ya da beni bir kaynağa yönlendirir)?


1
Microsoft ayrıca kod içeriyorsa bunlara Gömülü Kod Blokları adını verir.
Robert Harvey

Yanıtlar:


350

Resmi ad " sunucu tarafı komut dosyası sınırlayıcıları " veya " ASP.NET satır içi ifadeleridir ". Visual Studio 2008 sözdizimi vurgulama ayarları iletişim kutusunda bu "HTML Server-Side Script" olarak adlandırılır. Microsoft çocuklar bloglarında onlara "kod külçeleri" diyorlar.

  • <%@ %>ASP.NET Web Sayfaları için bir Yönerge'dir . Sayfa / kontrol derleyici ayarlarını yapılandırmak için sayfalar ve kontroller için kullanılır ( <%@ Control Inherits="MyParentControl" %>).
    • <%@ %>aynı zamanda bir Uygulama Direktifidir . Global.asax için uygulamaya özgü ayarları belirtmek için kullanılır. Yalnızca farklı bir etiket kümesi kullandığından sayfa yönergelerinden farklıdır.
  • <% %>bir Kod Oluşturma Bloğudur (satır içi kod için) . Gömülü Kod Bloklarının 4 biçiminden biri . Oluşturulan sınıfın Render()method ( <% x = x + 1; %>) yöntemine sunucu tarafı kodunun eklenmesi için kullanılır . Biçim: tek / çok satırlı veya çok bağlantılı (örn. if/then/elseHtml ile serpiştirilmiş), ancak işlevleri bildirmek için kullanılamaz.
  • <%= %>bir Kod Oluşturma Bloğudur (satır içi ifadeler için) . Kısayol olarak kullanılır<%Response.Write(value)%>
  • <%: %>(gayri resmi olarak " Html Kodlama Kod Bloğu ") öncekiyle aynıdır, ancak çıktı HTML kodludur.
  • <%# %>a, veri bağlayıcı ekspresyonu . (Salt okunur) tek yönlü ya da geçiş bağlanma iki-yönlü (güncelleştirilebilir) için kullanılır Eval, Xpath, Bindveya ifadeleri (açılır kontrol, örneğin seçilen değeri). İfadeleri, denetimin öznitelik işaretlemesi yoluyla veya özelliğindeki DataBoundLiteralControldeğere sahip bir örnek oluşturan ayrı bir etiket olarak veriye bağlı denetim özelliklerine bağlar Text. İfadeler DataBinding, kontrol için bir olay giderici tarafından değerlendirilir .
  • <%#: %>Bir olan HTML kodlanmış Veri Bağlama İfade (ASP.NET 4.5 yeni). Bu özellikleri bir araya getirilmiştir <%# %>ve <%: %>.
  • <%$ %>bir ASP.NET İfade Oluşturucu'dur . Sunucu etiketi öznitelikleri aracılığıyla kontrol özellikleri için çalışma zamanı ifadesi bağlaması için kullanılır. İle kullanılır AppSettings, ConnectionStringsya da Resources(ya kendi özel uzatma , örneğin özellikleri arka planda kodlama kullanıma kadar). Bu atamalar OnInit()oluşturulan sınıfın yöntemine eklenir .
  • <%-- --%>bir Sunucu Tarafı Açıklamasıdır . İçeriği derlemeden hariç tutmak için kullanılır (ve arkada kodda yorumlanmış bir denetime atıfta bulunulursa hata oluşturur). Html yorumlar aksine içeriği olacak değil çıktıda yer alması.
  • <!-- #Include ... -->Bir edilmektedir Sunucu Tarafı Yönergesi dahil . Bir dosyanın içeriğini sayfaya, kontrole veya global dosyaya eklemek için kullanılır. Kullanıcı denetiminin aşırı doldurulduğu ve kalıp sayfanın kullanılamadığı durumlarda kullanışlıdır.

Ayrıca bir Kod Bildirim Bloğu , son Gömülü Kod Bloğu formu da vardır.

<script runat="server">
bool IsTrue() {
  return false;
}
</script>

Bu, ASP.NET biçimlendirmesinden oluşturulan sınıfa ek üyeler (yöntemler vb.) Eklemek için kullanılır. Bunlar yalnızca "öncelikle eski ASP teknolojisiyle geriye dönük uyumluluğu korumak için" sağlanmıştır ve kullanılması önerilmez.


1
Ben appsettings / bağlantı dizeleri karşı veritabanları bir <% $ ...%> olduğuna inanıyorum.
Mart'ta sisve

Bunu duymadım. Kaynağın var mı?
Sedat Kapanoglu

3
Bunlara ASP.NET İfadeleri denir. Bkz msdn.microsoft.com/en-us/library/d5bd1tad.aspx
elo80ka

7

Ad sorunuz için yanıt yok, ancak MSDN "ASP.NET Sayfa Sözdizimi" sayfası oldukça iyi (veya daha doğrusu, üst düzey sayfa; altındaki sayfalar daha fazla bilgi veriyor).

EDIT: Daha önce <%# ... %>listeye dahil olmadığını düşündüm , ama tabii ki, Veri Bağlayıcı İfadeler altında. Hamuru.


Bu bağlantı şu anda çalışmıyor. Daha önce bir .NET framework sürümü seçmelisiniz.
Sam

1
@Sam: Ah, teşekkürler - Bence .NET 4.5 çıktığında emekli oldu. Bağlantıyı düzenledim.
Jon Skeet

1
Jon Skeet'in web geliştirme yapmadığını düşündüm ...!
CodeArtist

6

Sunucu tarafı sözdizimiyle ilgili bir şüphem olduğunda, bu QuickStart sayfasını her zaman çok yararlı buldum. 8 farklı biçimlendirme stilini detaylandırır ve artılarını ve eksilerini açıklamanın yanı sıra her birinin açıklayıcı örneklerini sunar.

Bununla birlikte, IIRC'nin Hızlı Başlangıç'ta başka bir yerde ayrıntılı olarak verildiği Sayfa düzeyi yönergesinden bahsetmez.

Tabii ki, bu ASP.NET 2.0 ile ilgilidir.


Bu yalnızca bağlantıya verilen bir yanıttır. Lütfen ilgili bilgileri satır içi olarak belirtin.
zzzzBov

1
bağlantı bayat :-(
Roland


6

Microsoft çocuklar bazen "nugget" veya "code nuggets" olarak adlandırırlar.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.