If it's stupid but works, it isn't stupid.
If it's stupid but works, it isn't stupid.
http://www.youtube.com/watch?v=bh6HYU71Mtg

Создаем ASP.NET MVC 4 Web Application -- Internet Application
Создаем БД (папка App_Date -- New Item -- SQL Server Database -- создаем поля таблицы -- Update)
заполняем таблицу (ПКМ на названии таблицы -- Show Table Data -- вводим данные)
создаем модель (классы, описывающие данные) (папка Models -- Add -- New Item -- подпапка Data -- LINQ to SQL Classes)
из Server Explorer перетаскиваем таблички на нашу модель -- VS создает класс
создаем контроллер (папка Controller -- Add -- Controller -- MVC controller with empty read/write action)
в контроллере создаем представление для просмотра -- Index -- Add View -- создаем представление (View Engine -- Razor; Create a strongly-typed view; Выбираем Model Class; Выбираем шаблон -- List; Выбираем шаблон или мастер-пейдж)
в контроллере создаем представление для редактирования -- Edit -- Add View -- создаем представление (View Engine -- Razor; Create a strongly-typed view; Выбираем Model Class; Выбираем шаблон -- Edit; Выбираем шаблон или мастер-пейдж)
В нашем контроллере в метод public ActionResult Edit(int id, FormCollection collection) добавляем логику, которая будет сохранять изменения в БД
-- подключаемся к БД
-- создаем объект контакта



модифицируем метод public ActionResult Edit(int id)


и метод public ActionResult Index()


Для того, чтобы создать пункт меню на главной странице, добавляем в шаблон


@темы: ASP.NET MVC, ASP.NET MVC Сайт, Ссылки

If it's stupid but works, it isn't stupid.
6. Создание контроллера консоли администратора

Создание контроллера для редактирования.
Папка Controllers --- ПКМ --- Add Controller --- Admin Controller
Выбираем Template --- MVC controller with empty read/write action

Переносим в созданный контроллер методы public ActionResult Index() и public ActionResult Details(int id) из HomeController

линк

@темы: БД, SQL, ASP.NET MVC, ASP.NET MVC Уроки, Ссылки

If it's stupid but works, it isn't stupid.
5. Создание представления для деталей

В контроллер HomeController описываем новый класс public ActionResult Details(int id)



и создаем представление (см. урок 4), выбираем для него Details.
Представление готово.


линк

@темы: БД, SQL, ASP.NET MVC, ASP.NET MVC Уроки, Ссылки

If it's stupid but works, it isn't stupid.
4. Создание представления
Создаем Мастер-пейдж
Views --- Shared --- Add New Item --- MVC4 View Master Page -- создаем мастер-пейдж
Добавляем на неё нужные элементы (таблицы стилей и др.)

Открываем контроллер HomeController, кликаем ПКМ по названию класса public ActionResult Index() --- Add View --- Добавляем представление (добавляем мастер-пейдж, выбираем Scaffold template - empty, list и др.)
Получаем представление.

Метод Html.ActionLink() создает гиперссылку.

линк

@темы: БД, SQL, ASP.NET MVC, ASP.NET MVC Уроки

If it's stupid but works, it isn't stupid.
3. Создание контроллера

Создание контроллера для отображения на представлении тех данных, которые содержаться в модели.
Папка Controllers --- Add --- Controller --- задаем имя контроллера

В контроллере



@темы: БД, SQL, ASP.NET MVC, ASP.NET MVC Уроки

If it's stupid but works, it isn't stupid.
2. Создание модели

Создание модели данных

Папка Models --- Add New Item --- Data --- ADO.NET Entity Data Model --- Generate from database (создание на основе существующей БД) --- Выбрать БД, создать соединение --- Выбрать, что хотите включить в БД (Tables, Views и др)
Флажок Pluralize or singularize generated object names говорит о том, что название класса, описывающего сущность из Бд, будет задано в единственном числе (напр., Flower) в том случает, если название БД задано во множественном числе (Flowers)

Т.о. создана модель.

линк

@темы: БД, SQL, ASP.NET MVC, ASP.NET MVC Уроки

If it's stupid but works, it isn't stupid.
Найти в html-коде ссылку на .swf файл


Создать в редакторе html-документ, записать в виде ссылки


Открыть в браузере, кликнуть ПКМ -- Сохранить как -- Сохранить .swf файл в нужное место

@темы: swf, Flash, Флэш

If it's stupid but works, it isn't stupid.
If it's stupid but works, it isn't stupid.
1. Создание проекта и добавление базы данных

Чтобы добавить в веб-приложение БД нужно создать папку App_Data (если она не создана)
Затем Add --- New Item --- SQL Server Database
VIEW --- Server Explorer - можно видеть, что есть в этой БД
Добавить новую таблицу
Server Explorer --- Tables --- Add New Table
Чтобы для этого поля автоматически назначалось значение
Properties --- Identity Specification
    (Is Identity) -- True
    Identity Increment -- 1 (шаг приращения)
    Identity Seed -- 1


Графа Allow Nulls говорит о том, является ли поле обязательным (true) или необязательным (false)

Чтобы добавить записи в таблицу
ПКМ --- Show Table Data

линк

@темы: БД, SQL, ASP.NET MVC, ASP.NET MVC Уроки, Ссылки

If it's stupid but works, it isn't stupid.
На странице до html-кода вставляем скрипт


В файле шаблона _Layout.cshtml пишем
@RenderSection("scripts", required: false)

@темы: Скрипты, ASP.NET MVC, Подключение скриптов

If it's stupid but works, it isn't stupid.

  • Шаблоны страницы (MasterPage)
    -- Шаблон разметки для группы страниц


  • Темы (Theme)
    -- Набор файлов стилей и изображений


  • Скины (Skins)
    -- Оформление ЭУ



Add -- New item -- Master page
Мастер-пейдж содержит элементы ContentPlaceHolder

куда всё страницы вставляют свой контент.

Add -- New item -- Web Form using Master Page
На странице есть блоки Content, которые передаются в блоки с соответствующим ID мастер-пейджа


Мастер-пейджи можно делать вложенными

Темы
Создание темы
Add -- Add ASP.NET Folder -- Theme
В результате создается папка App_Themes -- в ней файлы тем Theme1
Другие файлы тем также добавляются через Add -- Add ASP.NET Folder -- Theme2

Добавить файлы в тему
Щелчок по теме -- Add -- New Item -- css и skin файлы

Создаем css файл -- щелчок ПКМ внутри тега -- Build Style (Графический редактор для редактирования стилей)

Подключение темы
Непосредственно в заголовке страницы <%@ Page %>

Theme="Blue"

Скины
Щелчок на теме ПКМ -- Add -- New Item -- skin
Cкин-файлы
Отрабатывают на сервере.
Скин-файл выбирается в зависимости от присвоенной темы и автоматически применяется ко всем элементам данного типа.

Удаляем из скин-файла автоматически созданный комментарий и создаем свои свойства для элемента


Чтобы разным элементам одного типа присвоить разные скины, скинам задается скин-id SkinID
Скины


Контролы на странице


Также можно использовать для задания внешнего вида элементов свойство CssClass


Выбор темы на странице
На странице создаем выпадающий список









Курсы по asp.net от intuit.ru часть №4

@темы: Курсы по asp.net от intuit.ru, ASP.NET, Ссылки

If it's stupid but works, it isn't stupid.
Форма такого вида



Изначально отображается только кнопка "Добавить", при клике на эту кнопку отображается форма, к полям формы подключены валидаторы.



Для того, чтобы кнопка AddButton отвечала только за отображение/скрытие формы, к ней добавляются атрибуты
UseSubmitBehavior="False" кнопка становится type="button"
CausesValidation="False" при клике на кнопку НЕ происходит валидация

Контрол для кнопки AddButton



То же самое через Javasсript

Кнопка AddButton


Положить форму в таблицу


Скрипт


@темы: Валидация, Javascript, ASP.NET

If it's stupid but works, it isn't stupid.
1. Создать папку со скриптами Scripts, закинуть в нее библиотеку jQuery

2. Подключить библиотеку к странице


3. Создать файл Global.asax, если он еще не создан.
В методе Application_Start прописать событие



http://www.codeproject.com/Articles/465613/WebForms-UnobtrusiveValidationMode-requires-a

@темы: jQuery, ASP.NET, Ссылки

If it's stupid but works, it isn't stupid.
Для того, чтобы превратить input в textarea,
нужно вставить обычное поле TextBox
и изменить свойство
TextMode на Multiline

Можно так же выбрать другие свойства: Password, Number, Color, Range и тд.

@темы: Input, Textarea, Изменение типа поля, ASP.NET

If it's stupid but works, it isn't stupid.
Элемент-контейнер PlaceHolder - пустой элемент для объединения контролов


Для динамического добавления элементов в PlaceHolder создадим кнопку


и навесим на кнопку обработчик



вывод html-кода через LiteralControl - контрол, который просто выводит тот текст, который в нем есть.






Курсы по asp.net от intuit.ru часть №3

@темы: Динамическое добавление ЭУ, Курсы по asp.net от intuit.ru, ASP.NET, Ссылки

If it's stupid but works, it isn't stupid.
На одной странице происходит изменение содержания, для этого были добавлены специальные элементы-контейнеры Wizard, MultiView, Placeholder

Добавим на страницу контрол Toolbox -- Standart -- MultiView
MultiView группирует контролы по некоторому признаку.
Добавляем элементы View



Элемент MultiView единовременно отображает только одну из вкладок View.
Таким образом можно эмулировать переход пользователя между несколькими шагами.

Свойства MultiView
ActiveViewIndex -- показывает, какой View активен по умолчанию (индексация начинается с 0)

Добавляем после формы несколько LinkButton



и к каждой кнопке LinkButton добавляем обработчик клика



Один обработчик ко всем кнопкам LinkButton



и добавим этот обработчик ко всем кнопкам




Курсы по asp.net от intuit.ru часть №3

@темы: Контейнеры ЭУ, Курсы по asp.net от intuit.ru, ASP.NET, Ссылки

If it's stupid but works, it isn't stupid.
Форма



Контрол для кнопки Save



/*Выводит содержимое текстовых полей в метке Label

Валидация текстовых полей

К текстовому полю ID="txtFirstName" подключаем валидатор RequiredFieldValidator (Toolbox -- Validation) - проверяет, введено ли значение в текстовое поле
В свойствах валидатора задаем
ControlToValidate - id поля, которое проверяем
ErrorMesssage - текст сообщения об ошибке

Валидация Email

В дополнение к RequiredFieldValidator добавляется проверка на корректность введенного email адреса при помощи RegularExpressionValidator
Аналогичным образом выбираем
ControlToValidate - поле, которое проверяем
ErrorMesssage - Email введен некорректно
+ заполняем поле
ValidationExpression -- там есть набор предустановленных выражений -- выбираем выражение Internet e-mail adress и получаем соответствующее регулярное выражение.

Сообщаем серверу, что на форме есть валидация.

Добавляем в контрол кнопки Save
if (!Page.IsValid) return;

/*Если страница не валидна, то дальнейшее выполнение обработчика прекращается.



Валидация формы с большим количеством полей

Контрол ValidationSummary
Перед полями формы, но внутри серверной формы runat="server" вставляем тег


Свойство валидатора
Display
------------ Static (всегда занимает место на странице)
------------ Dinamic (если он не отображается, то не занимает место, и все валидаторы, которые идут за ним, занимают его место)

Text Сообщение, которое выводится непосредственно рядом с валидируемым текстовым полем

DisplayMode - определяет вид, в котором выводятся ошибки - список, список с буллитами, в одну строку.

CssClass - добавить свой класс и определить внешний вид.

ShowMessageBox true/false - всплывающее окно (js функция alert), в котором отображаются ошибки.

ShowSummary true/false - выводить список ошибок/нет

Другие валидаторы

RangeValidator - числовое значение в заданном диапазоне

CustomValidator - собственное правило валидации (например, проверяем, если ли введенный email в базе данных)
ErrorMessage Указанный email уже существует
ControlToValidate txtEmail

Создаем метод в Default.aspx.cs
/*Условный пример*/



Курсы по asp.net от intuit.ru часть №3

@темы: Валидация формы, Курсы по asp.net от intuit.ru, ASP.NET, Ссылки

10:24

If it's stupid but works, it isn't stupid.
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides "Design Patterns"

Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес "Приемы объектно-ориентированного программирования. Паттерны проектирования"

@темы: Паттерны проектирования

If it's stupid but works, it isn't stupid.
Вывод на странице поля из Global.resx

@Resources.Global.Название_Поля

Если поле содержит html-код, то

@Html.Raw(@Resources.Global.Название_Поля)

@темы: ASP.NET MVC