Deutsch

Воспоминание asp net 12.10.2024

1597  1 2 все
uscheswoi_82 коренной житель21.01.25 16:39
NEW 21.01.25 16:39 
в ответ uscheswoi_82 21.01.25 15:55

Теперь поговорим о веб сайтах для мобильных устройств. Прежде чем понять о чём идёт речь нужно взглянуть сюда:

WAP, рингтоны воспоминания 28.10.2024

Воспоминание Embedded ч2 27.11.2024

Воспоминания Embedded ч6 15.12.2024


Короче раньше сначало был WAP а потом когда появился Mobile Internet Explorer и iPhone люди могли выходить в интернет. Я лазил через WAP до 2010 г. Вот такие мобильные устройства могли выходить в интернет:














Буду тестировать спомощью этой программой:









Итак погнали.

1. Нужно добавить Mobiles Web Form, и назавём Default.aspx:




2. На выбор тут небольшой список готовых компонентов, мы будем пока пользоваться компонентом Label:




3. Выберем Label, т.е. напишем что-то типа такого Default.aspx:

<%@ Page Language="C#" Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" 
Assembly="System.Web.Mobile" %>
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
  <mobile:form id="form1" runat="server">
    <mobile:Label ID="lbHelloWorld" Runat="server">Privet mobilka</mobile:Label>
  </mobile:form>
</body>
</html>


4. Запустим в WAP-эмуляторе я выбрал Nokia 7110:


5. Вуаля! Видим надпись "Privet mobilka":


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#21 
uscheswoi_82 коренной житель21.01.25 19:51
NEW 21.01.25 19:51 
в ответ uscheswoi_82 21.01.25 16:39, Последний раз изменено 21.01.25 19:55 (uscheswoi_82)

Выше всё вспоминал в халявной версии Microsoft Visual Studio 2005 Web Express Edition. На этом вся халява заканчивается. Для следующих воспоминаний нужна будет Visual Studio 2005:

Это коробка



А это DVD диски:




Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#22 
uscheswoi_82 коренной житель22.01.25 16:30
NEW 22.01.25 16:30 
в ответ uscheswoi_82 21.01.25 19:51

Сейчас я вспомню как я делал воденые знаки в ASP NET 2.0.

Вот есть такая фотка, это моя фотка 2004-2005 гг., я автор фотки, и снимал на мой цифровой фотоаппарат Polaroid PDC3070:




А нужно отобразить картинку и водяные знаки с подписью "(c) uscheswo_82 2004", раз это 2004 год, то пусть и copyright 2004 г. т.е. "(c) uscheswo_82 2004":



1. Чтобы отобразить будем использовать Microsoft Visual Studio 2005. Нажмём Datei->Neu->Website...:



2. Появится диалоговое окно Neue Website, выберем ASP.NET-Website, пусть называется проект WebSite14:



3. Теперь добавим пустую папку:




4. Назовём папку images:



5. Теперь добавим Website->Neues Element hinzufügen, появится диалоговое окно Neues Element hinzufügen, 1)Выберем Web Form, 2)назовём imageview.aspx, т.е. Name:imageview.aspx, 3)уберём галочку Code in eigener Datei platzieren:




6. Вот код:

Default.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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Label ID="Label1" runat="server" Text="Пример картинки:" Font-Bold="True">
    </asp:Label>
    <br />
    <asp:Image ID="Image1" runat="server" ImageUrl="~/imagview.aspx" />
  </div>
  </form>
</body>
</html>



Default.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

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



imageview.aspx:

<%@ Page Language="C#" ContentType="image/jpeg" %>
<%@ Import Namespace="System.Drawing" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<%@ import Namespace="System.Drawing.Drawing2D" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  protected void Page_Load(object sender, EventArgs e) {
    Bitmap bmp = new Bitmap(640, 480);
    Graphics g = Graphics.FromImage(bmp);
    Response.Clear();     
    g.DrawImage(System.Drawing.Image.FromFile(Server.MapPath("~/images/DSCI3746.jpg")), 0,0);
    g.DrawString("(c) uscheswoi_82 2004", 
                 new Font("Courier New", 16, FontStyle.Bold), 
                 new SolidBrush(Color.FromArgb(90, 255, 255, 255)), 
                 new PointF(360, 450));
    bmp.Save(Response.OutputStream, ImageFormat.Jpeg);
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
  <title>Unbenannte Seite</title>
</head>
<body>
  <form id="form1" runat="server">
  <div></div>
  </form>
</body>
</html>



7. Вуаля!


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#23 
uscheswoi_82 коренной житель22.01.25 16:33
NEW 22.01.25 16:33 
в ответ uscheswoi_82 22.01.25 16:30

Полупрозрачность, т.е. полупрозрачные водяные знаки с подписью "(c) uscheswo_82 2004" благодаря статическому методу, первый параметр это альфа канал т.е. прозрачность, вроде бы имхо от 0 до 100, у меня 90 установлено:

Color.FromArgb(90, 255, 255, 255)

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#24 
uscheswoi_82 патриот22.01.25 21:58
NEW 22.01.25 21:58 
в ответ uscheswoi_82 22.01.25 16:33

Про халявную версию тут писали см. https://ru.wikipedia.org/wiki/Microsoft_Visual_Studio_Express#Visual_Web_Developer_Express

Microsoft Visual Studio Express — линейка бесплатных интегрированных сред разработки, облегчённая версия Microsoft Visual Studio, разработанной компанией Microsoft, инструмент создания Web-приложений, сайтов, различных веб-сервисов на основе технологии ASP.NET[1]. Согласно утверждению Microsoft, «Express»-редакции предлагают отлаженную, простую в обучении и использовании среду разработки пользователям, не являющимся профессиональными разработчиками ПО, — любителям и студентам.

Visual Web Developer Express является бесплатным инструментом веб-разработки, что позволяет разработчикам использовать продукт для оценки процесса создания и редактирования веб возможностей других Visual Studio 2008 изданий на безвозмездной основе. Её основная функция заключается в создании ASP.NET веб-сайтов. Она имеет интерфейс WYSIWYG, drag-and-drop дизайнер интерфейса пользователя; редакторы расширенного HTML и кода; (ограниченный) проводник баз данных; поддержку других веб-технологий (например, CSS, JavaScript, XML), а также комплексную проверку во время разработки, в том числе и по стандартам XHTML 1.0/1.1 и CSS 2.1.

В VS2005 не хватает некоторых функций, таких как проверка доступности, возможность создать автономную библиотеку классов проекта (которая может быть сделана другим языком конкретного издания Express); расширения поддержки, необходимые для загрузки сторонней надстройки, макросы и некоторые другие функции.

VS2008 Web Developer Express SP1 поддерживает проекты как библиотек классов, так и веб-приложений, которые не поддерживаются в VS2005 Express. Она также включает новый встроенный конструктор HTML на основе Microsoft Expression Web.


а так-же см. https://studfile.net/preview/9209879/page:2/

Visual Studio 2005 Express Edition Новые версии Express предоставляют уникальную возможность обучения разработке программного обеспечения или Web-страниц. Эти продукты предназначены для начинающих пользователей, студентов и для представителей малого бизнеса. Они содержат более доступные и сжатые версии основных продуктов Visual Studio и отличаются от полных комплектов продуктов.

Каждая Express-редакция включает набор учебников, документацию для начинающих и ссылки на общедоступные ресурсы, вроде тематических конференций и форумов. Во время установки можно по выбору загрузить и установить MSDN 2005 Express Edition Library, которая включает полный набор документации по каждому продукту серии Express. Она предназначается в основном для обучения разработчиков, это не совсем традиционная документация MSDN Library. Часть этой документации даже ссылается на видеоматериалы и презентации на сайте MSDN, что весьма ценно.

А какие же ограничения существуют для Express версий? Нет доступа к удаленным данным; эти версии используют только локально установленный источник данных (включая бесплатный продукт SQL Server 2005 Express Edition). Разрабатывать приложения для мобильных устройств в VB Express, Visual C# Express или Visual C++ Express нельзя; необходимо будет обновить их до Visual Studio 2005 Standard Edition, чтобы получить такие возможности. Конечно, отсутствуют все профессиональные возможности версий Visual Studio Team System (см. ниже), например, моделирование приложений и кодов, проверка модулей, статический анализ кода и т.д.
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#25 
uscheswoi_82 патриот27.01.25 01:45
NEW 27.01.25 01:45 
в ответ uscheswoi_82 22.01.25 21:58

Всем привет. Теперь вспомним про сессии. В PHP нужно так делать:

session_start();
$_SESSION['var'] = 3; // Чтобы записать
echo $_SESSION['var']; // Чтобы прочитать



В ASP NET 2.0 WebForms вот так, спомощью статического класса:

using System;

public static class MySession {
    public static int var;
}

MySession.var = 3; // Чтобы записать
Response.Write(MySession.var.ToString()); // Чтобы прочитать



Или вот так, спомощью сессии:

Session["var"] = 3; // Чтобы записать
Response.Write(Session["var"].ToString()); // Чтобы прочитать
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#26 
uscheswoi_82 патриот29.01.25 00:04
NEW 29.01.25 00:04 
в ответ uscheswoi_82 27.01.25 01:45

Продолжим воспоминания. Сначало продолжу про сессию, а поотом про куки.

Так-же можно так добавить сессию:

Session.Add("var", 3); // Это тоже самое что и Session["var"] = 3;
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#27 
uscheswoi_82 патриот29.01.25 00:18
29.01.25 00:18 
в ответ uscheswoi_82 29.01.25 00:04

Куки хранятся в веб-браузере. Чтобы установит куки, можно 3-мя способами:

Так:

Response.AppendCookie(new HttpCookie("var", "3"));


Так:

Response.Cookies.Add(new HttpCookie("var", "3"));


Или так:

Response.Cookies["var"].Value = "3";



Но чтобы прочитать записанный куки, можно вот так написать:

Response.Write(Response.Cookies["var"].ToString()); // Выводит 3


Или вот так:

Response.Write(Response.Cookies.Get("var").Value.ToString()); // Выводит 3
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#28 
uscheswoi_82 патриот29.01.25 00:21
NEW 29.01.25 00:21 
в ответ uscheswoi_82 29.01.25 00:18

Чтобы установить время истекания куки, нужно написать следующее:

Истекает куки для параметра/переменной var, через 30 минут:

Response.Cookies["var"].Expires = DateTime.Now.AddMinutes(30);



Истекает куки для параметра/переменной var, через 2 часа:

Response.Cookies["var"].Expires = DateTime.Now.AddHours(2);



Истекает куки для параметра/переменной var, через 1 день:

Response.Cookies["var"].Expires = DateTime.Now.AddDays(1);
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#29 
uscheswoi_82 патриот5 дней назад, 22:01
NEW 5 дней назад, 22:01 
в ответ uscheswoi_82 29.01.25 00:21

Всем привет! Продолжим. Короче в ASP NET WebForms не нужно писать так, как пишут в PHP:

Пример index.php:

<!DOCTYPE html>
<html>
  <head>
    <title>Пример POST</title>
  </head>
  <body>
    <?php if(isset($_POST['firstname']) && isset($_POST['lastname'])): ?>
      <?php if($_POST['firstname'] != '' && $_POST['lastname'] != ''): ?>
        <h1><?=sprintf('Привет %s %s!', $_POST['firstname'], $_POST['lastname']); ?></h1>
      <?php endif ?>
        <h1>Привет незнакомец! Добро пожаловать к нам на сайт!</h1>
    <?php else: ?>
        <h1>Привет незнакомец! Добро пожаловать к нам на сайт!</h1>
    <?php endif ?>
    <form method="post" action="<?=htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
      <label for="firstname">Имя:</label><br>
      <input type="text" name="firstname" id="firstname"><br><br>
      <label for="lastname">Фамилия:</label><br>
      <input type="text" name="lastname" id="lastname"><br><br>
      <input type="submit" value="Погнали!">
    </form>
  </body>
</html>



В ASP NET WebForms нужно напрямую вызывать вот так:

Default.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>Пример POST</title>
  </head>
  <body>
    <form id="form1" runat="server">
      <div>
        <h1><asp:Label ID="lbHello" runat="server" Text=""></asp:Label></h1>
        <asp:Label ID="lbFirstname" runat="server" Text="Имя:"></asp:Label><br />
        <asp:TextBox ID="txtFirstname" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator
        ID="rfvFirstname" runat="server" 
        ErrorMessage="*" ControlToValidate="txtFirstname" SetFocusOnError="True">
        </asp:RequiredFieldValidator><br /><br />
        <asp:Label ID="lbLastname" runat="server" Text="Фамилия:"></asp:Label><br />
        <asp:TextBox ID="txtLastname" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator
        ID="rfvLastname" runat="server" 
        ErrorMessage="*" ControlToValidate="txtLastname" SetFocusOnError="True">
        </asp:RequiredFieldValidator><br /><br />
        <asp:Button ID="btnGoGo" runat="server" Text="Погнали!" />
      </div>
  </form>
</body>
</html>



Default.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page {
  private String strHelloAnon = "Привет незнакомец! " +
  "Добро пожаловать к нам на сайт!";
  private String strHelloName = "Привет {0} {1}!";

  protected void Page_Load(object sender, EventArgs e) {
    if(!IsPostBack) lbHello.Text = strHelloAnon;
    else {
      if(txtFirstname.Text.Length > 0 && txtLastname.Text.Length > 0) {
        lbHello.Text = String.Format(strHelloName, txtFirstname.Text, 
        txtLastname.Text);
      }
      else
        lbHello.Text = strHelloAnon;
    }
  }
}



Вуаля! А вот так работает:



Спомощью IsPostBack проверяем первый раз запускается сайт, или нажали на кнопку Submit т.е. на кнопку "Погнали!". Если первый раз запускается сайт / страница, то IsPostBack = false, если не первый раз, т.е. уже нажали на кнопку Submit т.е. на кнопку "Погнали!" то IsPostBack = true.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#30 
uscheswoi_82 патриот5 дней назад, 22:15
NEW 5 дней назад, 22:15 
в ответ uscheswoi_82 5 дней назад, 22:01

Т.е. чтобы прочесть в PHP делаем так:

echo $_POST['firstname']; // читаем значение из поле firstname
echo $_POST['lastname']; // читаем значение из поле lastname



а в ASP NET WebForms делаем вот так:

Response.Write(txtFirstname.Text); // читаем значение из поле firstname
Response.Write(txtLastname.Text); // читаем значение из поле lastname
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#31 
uscheswoi_82 патриот5 дней назад, 22:22
NEW 5 дней назад, 22:22 
в ответ uscheswoi_82 5 дней назад, 22:15

Чтобы записать в поле в PHP делаем так:

<input name="firstname" id="firstname" type="text" value="<?php ='новое значение'; ?>
<input type="text" name="firstname" id="firstname" value="<?php ='новое значение'; ?>



А в ASP NET WebForms делаем вот так:

txtFirstname.Text = "новое значение";
txtLastname.Text = "новое значение";
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#32 
uscheswoi_82 патриот2 дня назад, 01:50
NEW 2 дня назад, 01:50 
в ответ uscheswoi_82 5 дней назад, 22:22

Опечатка, надо так:

<input name="firstname" id="firstname" type="text" value="<?php ='новое значение'; ?>">
<input type="text" name="firstname" id="firstname" value="<?php ='новое значение'; ?>">
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#33 
uscheswoi_82 патриот2 дня назад, 02:31
NEW 2 дня назад, 02:31 
в ответ uscheswoi_82 2 дня назад, 01:50, Последний раз изменено 2 дня назад, 02:33 (uscheswoi_82)

В PHP есть такой массив $_REQUEST, там содержатся $_GET, $_POST, и $_COOKIE.

А в ASP NET нужно чтобы получить параметр писать так Т.е. если мы в браузере напишем так http://localhost/Default.aspx?firstname=Anton&lastname=pop...:

if(Request["firstname"] != null) {
  if(Request["lastname"] != null) {
    Response.Write(String.Format("Привет {0} {1}!",
    Request["firstname"].ToString(),
    Request["lastname"].ToString()));
  }
}



Вот полный код:

Default.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>Пример метод GET</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        Нажми на <asp:HyperLink ID="hl1" 
        NavigateUrl="~/Click.aspx?firstname=Anton&lastname=Popov" 
        runat="server">эту ссылку</asp:HyperLink>.
    </div>
    </form>
</body>
</html>



Default.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

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



Click.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Click.aspx.cs" Inherits="Click" %>
<!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>Результат метода GET</title>
</head>
<body>
    <form id="form1" runat="server">
    <div></div>
    </form>
</body>
</html>



Click.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Click : System.Web.UI.Page {
  protected void Page_Load(object sender, EventArgs e) {
    if(Request["firstname"] != null) {
      if(Request["lastname"] != null) {
         Response.Write(String.Format("Привет {0} {1}!",
         Request["firstname"].ToString(),
         Request["lastname"].ToString()));
      }
    }
  }
}


Вуаля!, а вот и результат:



Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#34 
uscheswoi_82 патриотСегодня, 10:01
NEW Сегодня, 10:01 
в ответ uscheswoi_82 2 дня назад, 02:31

Короче утром не мог зайти на этот сайт с 5 утра по 8 утра показывала ошибку 500. Короче продолжаю вспоминать. Сегодня речь пойдёт об локализации.

Вот халявная версия Microsoft Web 2005 Express Edition, в меню Extras нет пункта Lokal Resource generieren:



А вот платная версия Microsoft Visual Studio 2005 Standard Edition, и там в меню Extras есть пункт Lokal Resource generieren:



Это нам сейчас и понадобиться.

Есть такой код Default.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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Label ID="lbFirstname" runat="server" Text="Имя:">
    </asp:Label><br />
    <asp:TextBox ID="txtFirstname" runat="server">
    </asp:TextBox><br /><br />
    <asp:Label ID="lbLastname" runat="server" Text="Фамилия:">
    </asp:Label><br />
    <asp:TextBox ID="txtLastname" runat="server">
    </asp:TextBox><br /><br />
    <asp:Label ID="lbBirthday" runat="server" Text="Дата рождения:">
    </asp:Label><br />
    <asp:TextBox ID="txtBirthday" runat="server">
    </asp:TextBox><br /><br />
    <asp:Button ID="btnOK" runat="server" Text="OK" />
  </div>
  </form>
</body>
</html>



Вот так выглядет лейаут:



1. Чтобы добавить в ресурсы текстовку, нужно перейти в Entwurf:



2. Нажмём на меню Extras->Lokale Resource generieren:


См.:




3. 1)Создастся папка App_LocalResources, 2)добавиться файл ресурсов Default.aspx.resx:


4. Теперь код выглядет вот так Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" 
Culture="auto" meta:resourcekey="PageResource1" UICulture="auto" %>
<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Label ID="lbFirstname" runat="server" Text="Имя:" 
    meta:resourcekey="lbFirstnameResource1"></asp:Label><br />
    <asp:TextBox ID="txtFirstname" runat="server" 
    meta:resourcekey="txtFirstnameResource1"></asp:TextBox><br /><br />
    <asp:Label ID="lbLastname" runat="server" Text="Фамилия:" 
    meta:resourcekey="lbLastnameResource1"></asp:Label><br />
    <asp:TextBox ID="txtLastname" runat="server" 
    meta:resourcekey="txtLastnameResource1"></asp:TextBox><br /><br />
    <asp:Label ID="lbBirthday" runat="server" Text="Дата рождения:" 
    meta:resourcekey="lbBirthdayResource1"></asp:Label><br />
    <asp:TextBox ID="txtBirthday" runat="server" 
    meta:resourcekey="txtBirthdayResource1"></asp:TextBox><br /><br />
    <asp:Button ID="btnOK" runat="server" Text="OK" 
    meta:resourcekey="btnOKResource1" />
  </div>
  </form>
</body>
</html>



5. А так выглядет код Default.aspx.resx:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <xsd:schema id="root" xmlns="" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
   xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="btnOKResource1.Text" xml:space="preserve">
    <value>OK</value>
  </data>
  <data name="btnOKResource1.ToolTip" xml:space="preserve">
    <value />
  </data>
  <data name="lbBirthdayResource1.Text" xml:space="preserve">
    <value>Дата рождения:</value>
  </data>
  <data name="lbBirthdayResource1.ToolTip" xml:space="preserve">
    <value />
  </data>
  <data name="lbFirstnameResource1.Text" xml:space="preserve">
    <value>Имя:</value>
  </data>
  <data name="lbFirstnameResource1.ToolTip" xml:space="preserve">
    <value />
  </data>
  <data name="lbLastnameResource1.Text" xml:space="preserve">
    <value>Фамилия:</value>
  </data>
  <data name="lbLastnameResource1.ToolTip" xml:space="preserve">
    <value />
  </data>
  <data name="PageResource1.Title" xml:space="preserve">
    <value>Пример перевода</value>
  </data>
  <data name="txtBirthdayResource1.Text" xml:space="preserve">
    <value />
  </data>
  <data name="txtBirthdayResource1.ToolTip" xml:space="preserve">
    <value />
  </data>
  <data name="txtFirstnameResource1.Text" xml:space="preserve">
    <value />
  </data>
  <data name="txtFirstnameResource1.ToolTip" xml:space="preserve">
    <value />
  </data>
  <data name="txtLastnameResource1.Text" xml:space="preserve">
    <value />
  </data>
  <data name="txtLastnameResource1.ToolTip" xml:space="preserve">
    <value />
  </data>
</root>
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#35 
1 2 все