100 likes | 247 Views
Генерация разметки в ASP.NET 4.0. Андрей Веселов. М ета-теги. Новые свойства класса Page : MetaKeywords и MetaDescription. <% @ Page Title ="Home Page" Language ="C#" MasterPageFile ="~/ Site.master " AutoEventWireup ="true"
E N D
Генерация разметки в ASP.NET 4.0 Андрей Веселов
Мета-теги Новые свойства класса Page:MetaKeywordsиMetaDescription. <%@PageTitle="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ASPNETMarkupDemo._Default" MetaKeywords="ASP.NET, WebForms", MetaDescription="Демонстрация генерации разметки" %> public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgse) { this.MetaKeywords= "ASP.NET, WebForms"; this.MetaDescription = "Демонстрация генерации разметки"; } } <head> <title>Demo page</title> <metaname="keywords" content="ASP.NET, WebForms" /> <metaname="description" content="This is the description of my page" /> </head>
Изменения в генерации разметки Обратная совместимость с ASP.NET 3.5 <system.web> <pages controlRenderingCompatibilityVersion="3.5 | 4.0" /> </system.web> • Генерация разметки в ASP.NET 4.0: • используется режим XHTML 1.0 Strict; • новые правила создания разметки для элементов с Enabled="false"; • элементы div для скрытых полей не влияют на другие секции; • разметка для Menuгенерируется на базе семантических стандартов; • элементы контроля значений (validation) не генерируют inline-стили; • не добавляется атрибут border со значением 0.
Разметка при Enabled="false" Использование CSS класса aspnetdisabledвместо атрибута disabled: <spanid="Span1" class="aspnetdisabled">ASP.NET 4.0 markup demo</span>
div вокруг скрытых элементов Использование специального CSS класса aspNetHidden: <div class="aspNetHidden"> … </div>
Генерация внешних таблиц Свойство для управления созданием внешних таблиц для элемента: <asp:LoginID="Login1" runat="server" RenderOuterTable="false">
Вывод CheckBoxListи RadioButtonList Свойство для управления созданием внешних таблиц для элемента: <asp:CheckBoxListID="CheckBoxList1" runat="server" RepeatLayout="Flow | Table | OrderedList | UnorderedList"> … </asp:CheckBoxList> <asp:RadioButtonListID="RadioButtonList1" runat="server" RepeatLayout="Flow | Table | OrderedList | UnorderedList"> … </asp:CheckBoxList> • Flow - <span> • Table - <table> • Новые в ASP.NET 4.0: • OrderedList - <ol> • UnorderedList- <ul> OrderedList <olid="CheckBoxList1"> <li>Demo item 1</li> <li>Demo item 2</li> </ol> UnorderedList <ulid="RadioButtonList1"> <li>Demo item 1</li> <li>Demo item 2</li> </ul>
Меню Вместо <table> в ASP.NET 4.0 используется <ul>: <asp:MenuID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal"> <Items> <asp:MenuItemNavigateUrl="~/Default.aspx" Text="Home"/> <asp:MenuItemNavigateUrl="~/About.aspx" Text="About"/> </Items> </asp:Menu> <divclass="menu" id="NavigationMenu"> <ulclass="level1"> <li><aclass="level1" href="Default.aspx">Home</a></li> <li><aclass="level1" href="About.aspx">About</a></li> </ul> </div>
Экранирование ввода Обычная форма записи: <%= HttpUtility.HtmlEncode(message) %> Новая форма записи (начиная с ASP.NET 4.0): <%: message %>