Опубликован: 29.08.2012 | Доступ: свободный | Студентов: 2167 / 223 | Длительность: 08:05:00
Лекция 7:

Инструментарий WebMatrix для серверной разработки

Запускаем проект и получаем следующий результат:

Здесь хотелось бы отметить следующее.

  1. Скриптовая часть заключается в серверные скобки:
    @{
    ………………
    
    }
          
  2. Использовался язык программирования JavaScript

Помимо JavaScript вполне можно использовать и C#.В следующие примере мы покажем способ нахождения суммы вещественного массива, написанный на языке C# (sample_3).

<styletype="text/css">
p {
font-family: 'Comic Sans MS';color: #0094ff;
    }
</style>

@{
double[] alpha = { -3.8, 11.6, 5.9, 13.4, 24.67 };
int n = alpha.Length;
double sum = 0;
stringstr = "";
inti;

for (i = 0; i<n;i++ )
    {
str+=alpha[i] + " ";
        sum+=alpha[i];
    }

}
<p>Массив: @str</p>
<p>Сумма массива: @sum</p>
    

Обратите внимание, что код нашей веб-страницы может быть очень аскетичным. Рассмотрим еще один пример работы с массивом (sample_4).

@{
string[] Planets = {"Меркурий","Венера","Земля","Марс",
"Юпитер","Сатурн","Уран", "Нептун" };
<p>Количество планет Солнечной системы:  @Planets.Length</p>
foreach (var Planet in Planets)
{
<br/>@Planet
 }

<h3>Обратный порядок планет:</h3>
Array.Reverse(Planets);
foreach (varreversedItemin Planets)
 {
<br/>@reversedItem
 }

}
    

В двух последующих примерах мы покажем работу операторов, влияющих на ход выполнения программы, а именно, условный оператор и переключатель.

Условныйоператор (sample_5)

<styletype="text/css">
p {
font-family: 'Comic Sans MS';color: #0094ff;
    }
</style>
@{
var a1 = 3;
var a2 = -5;
varstr="";
var b1=a1;
if (a1 > a2) { b1 = a1; } else { b1 = a2; }
str = "Наибольшее из двух чисел = " + b1;
}
<p>Первое число: @a1</p>
<p>Второе число: @a2</p>
<p>@str</p>
        

Переключатель (sample_6)

<styletype="text/css">
p {
font-family: 'Comic Sans MS'; color: #0094ff;
    }
</style>

@{
var weekday = "Пятница";
var greeting = "";
switch(weekday)
{
case"Понедельник": greeting = "Отдых от выходного дня"; break;
case"Вторник": greeting = "Подготовка к рабочему дню"; break;
case"Среда": greeting = "Рабочий день"; break;
case"Четверг": greeting = "Отдых от рабочего дня"; break;
case"Пятница": greeting = "Подготовка к выходному дню"; break;
case"Суббота": greeting = "Первый выходной день"; break;
case"Воскресенье": greeting = "Второй выходной день"; break;        
default: greeting = "Сегодня какой-то другой день, отлично."; break;
}
<p>Сегодня @weekday,  @greeting</p>
}
        

В следующем примере (sample_7) мы покажем прием работы со словарем. Программа будет генерировать библейские заповеди.

<styletype="text/css">
h1 {
font-family: 'Comic Sans MS'; color: #0094ff;
    }
</style>

@{
var Precept = newDictionary<int, string>();
    Precept.Add(1, "Я Господь, Бог твой; да не будет у тебя других богов пред лицом Моим");
Precept.Add(2, "Не делай себе кумира и никакого изображения того, что на небе вверху, 
что на земле внизу, и что в воде ниже земли. Не поклоняйся им и не служи им; ибо Я Господь, Бог твой, 
Бог ревнитель, наказывающий детей за вину отцов до третьего и четвёртого [рода], ненавидящих Меня, 
и творящий милость до тысячи родов любящим Меня и соблюдающим заповеди Мои");
Precept.Add(3, "Не произноси имени Господа, Бога твоего, напрасно; ибо Господь не оставит без наказания того, 
кто произносит имя Его напрасно");
Precept.Add(4, "Помни день субботний, чтобы святить его. Шесть дней работай, 
и делай всякие дела твои; а день седьмый - суббота Господу, Богу твоему: не делай в оный никакого дела ни ты, 
ни сын твой, ни дочь твоя, ни раб твой, ни рабыня твоя, ни скот твой, ни пришлец, который в жилищах твоих. 
Ибо в шесть дней создал Господь небо и землю, море и все, что в них; а в день седьмый почил. 
Посему благословил Господь день субботний и освятил его");
Precept.Add(5, "Почитай отца твоего и мать твою, чтобы продлились дни твои на земле, 
которую Господь, Бог твой, дает тебе");
Precept.Add(6, "Не убивай");
Precept.Add(7, "Не прелюбодействуй");
Precept.Add(8, "Не кради");
Precept.Add(9, "Не произноси ложного свидетельства на ближнего твоего");
Precept.Add(10, "Не желай дома ближнего твоего; не желай жены ближнего твоего, ни раба его, 
ни рабыни его, ни вола его, ни осла его, ничего, что у ближнего твоего");

Random rand = newRandom();
int n=rand.Next(1, 10);
stringstr = Precept[n];
}

<h1>@str</h1>
    

В заключение мы продемонстрируем работу с формой (sample_8). В форме мы разместим три поля ввода и кнопку. В поля ввода пользователь будет вводить коэффициенты квадратного уравнения. При нажатии на кнопку программа будет выдавать на экран результат.

@{
varstr = "";
if(IsPost) {
// Извлечение чисел, введенных пользователем.

var a = Request["txtA"].AsFloat();
var b = Request["txtB"].AsFloat();
var c = Request["txtC"].AsFloat();

var d = System.Math.Pow(b, 2) - 4 * a * c;

if (d< 0) { str = "Действительных корней нет!"; } 

else
{
var x1=(-b-System.Math.Sqrt(d))/(2*a);
var x2 = (-b + System.Math.Sqrt(d)) / (2 * a);
str = "x1 = " + x1 + ", x2 = " + x2;    
}                        

}
}
<!DOCTYPEhtml>
<html>
<head>
<title></title>
<metahttp-equiv="content-type"content="text/html;charset=utf-8"/>
<styletype="text/css">
body {background-color: beige; font-family: Verdana, Arial;
margin: 50px; }
form {padding: 10px; border-style: solid; width: 250px;}
</style>
</head>
<body>
<p>Решение квадратного уравнения</p>
<formaction=""method="post">
<p><labelfor="txtA">a=</label>
<inputtype="text"name="txtA"/>
</p>
<p><labelfor="txtB">b=</label>
<inputtype="text"name="txtB"/>
</p>

<p><labelfor="txtC">c=</label>
<inputtype="text"name="txtC"/>
</p>
<p><inputtype="submit"value="Вычислить"/></p>

</form>
<p>@str</p>
</body>
</html>
    



На практических занятиях мы изучим возможности технологии ASP.NETRazor для работы с базами данных и создания галерей изображений.

Александр Лобанов
Александр Лобанов

Даю задания для студентов. Они хотят повторно пройти курс. Как отписаться от выполненного курса, что бы пройти его заново?