Форум → Программирование → Пыхнуть хотите? → Готовые решения → Оцените наш проект
Оцените наш проект
Страницы: ← Предыдущая страница →
-
Фев. 4, 2011, 2:10 д.п., спустя 3 минуты 28 секунд
Абырвалг, формы для кого - для внутреннего пользования или для гостей? Если для внутреннего то у меня есть генератор форм. Там валидация, хуяция, проверка на уникальность аяксом и т.д.не всё полезно, что в swap полезло -
Фев. 4, 2011, 2:20 д.п., спустя 10 минут 1 секунду
обыкновенные такие формы - админские (тут может быть extJS будет), юзерские - добавить запись в блог, добавить коммент, создать событие, добавить место встречи и тд -
Фев. 4, 2011, 2:48 д.п., спустя 28 минут 19 секунд
Абырвалг, там дохуя. формы - это половина еботни с проектом. я потратил на них не один месяц. Больше всего форм для модераторов контента, но они часто ненамного умнее анонимусов - точно также допускают тупорылые ошибки, вместо больших букв маленькие, вместо дробной точки вставляют запятую, url могут написать по-русски и т.д.
Типичные задачи для форм:
- Валидация на клиенте и на сервере, проверка на уникальность
- Блокировка спама
- Отбрасывание непредусмотренных полей
- Вырезание всякого говна из текста (контрольных символов, например), xss-чистка
- Связь формы с таблицей БД
- Работа с файлами (отдельный головняк), в частности с отображением миниатюр картинок, замена/удаление при замене/удалении
- Сортировка записей
- Подключение визуального редактора
- Динамическое расширение форм, добавление полей
- Задание пользовательских стилей
- Некоторые поля можно только создавать но нельзя редактировать
- Некоторые поля влияют на другие поля
- На некоторые поля формы задаются права на редактирование
- Отправка форм без перезагрузки, в том числе форм с файлами
- Отображение записей списком, постраничная разбивка, сортировка по столбцам
- ВНЕЗАПНО!!! понадобилось добавить ещё несколько полей в рабочую форму
Обычно одна форма - одна таблица - одна модель. Удобно когда можно написать<?xml ?> <form> <fields> <field name="bla" type="bla"/> <field name="blabla" type="bla"/> <field name="blablabla" type="bla"/> </fields> </form>
сделать под неё таблицу, и у тебя хуяк - весь функционал.
Сейчас могу десяток этих ебучих форм с моделями сделать за день. Вручную всё выписывать - неделю б ебался.Спустя 51 сек.Вот так это выглядит для анонимусов http://www.vtimport.ru/makeorder/не всё полезно, что в swap полезло -
Фев. 4, 2011, 2:48 д.п., спустя 23 часа 59 минут 36 секунд
модели заполняются сами, все что нужно, это создать класс с нужными полями и атрибутами этих полейpublic class RegisterModel { [Required] [Display(Name = "User name")] public string UserName { get; set; } [Required] [DataType(DataType.EmailAddress)] [Display(Name = "Email address")] public string Email { get; set; } [Required] [ValidatePasswordLength] [DataType(DataType.Password)] [Display(Name = "Password")] public string Password { get; set; } [DataType(DataType.Password)] [Display(Name = "Confirm password")] [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] public string ConfirmPassword { get; set; } }
теперь можно обработать запросpublic class AccountController : Controller { [HttpPost] public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // ok } // ne ok return View(); } }
You can be anything you want to be. Just turn yourself into anything you think that you could ever be. -
Фев. 4, 2011, 2:56 д.п., спустя 8 минут 28 секунд
а как настроить рендеринг формы? Это типа через аннотации ты так задал лейбочки? -
Фев. 4, 2011, 2:58 д.п., спустя 1 минуту 24 секунды
а как настроить рендеринг формы? Это типа через аннотации ты так задал лейбочки?
это ты кому?не всё полезно, что в swap полезло -
-
Фев. 4, 2011, 3:47 д.п., спустя 11 минут 21 секунду
Это типа через аннотации ты так задал лейбочки?
да@using (Html.BeginForm()) { @Html.ValidationSummary(true, "Account creation was unsuccessful. Please correct the errors and try again.") <div> <fieldset> <legend>Account Information</legend> <div class="editor-label"> @Html.LabelFor(m => m.UserName) </div> <div class="editor-field"> @Html.TextBoxFor(m => m.UserName) @Html.ValidationMessageFor(m => m.UserName) </div> <div class="editor-label"> @Html.LabelFor(m => m.Email) </div> <div class="editor-field"> @Html.TextBoxFor(m => m.Email) @Html.ValidationMessageFor(m => m.Email) </div> <div class="editor-label"> @Html.LabelFor(m => m.Password) </div> <div class="editor-field"> @Html.PasswordFor(m => m.Password) @Html.ValidationMessageFor(m => m.Password) </div> <div class="editor-label"> @Html.LabelFor(m => m.ConfirmPassword) </div> <div class="editor-field"> @Html.PasswordFor(m => m.ConfirmPassword) @Html.ValidationMessageFor(m => m.ConfirmPassword) </div> <p> <input type="submit" value="Register" /> </p> </fieldset> </div> }
форма храниться в файле Register.cshtml, что соответствует названию метода Register, а файл этот лежит в папке Account, что соответствует названию контроллера и рендериться при вызове метода View()You can be anything you want to be. Just turn yourself into anything you think that you could ever be. -
Фев. 4, 2011, 3:59 д.п., спустя 12 минут 1 секунду
можно также явно указать имя файла, который нужно отобразить View("RegisterSuccess.cshtml"), или передать туда некоторые параметры, а потом с ними работатьpublic class AccountController : Controller { [HttpPost] public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { ViewData.Message = "The Title"; } // ne ok return View(); } }
<h2>View.Message </h2>
Спустя 282 сек.соответственно Message это динамическое свойство, может быть любымYou can be anything you want to be. Just turn yourself into anything you think that you could ever be.
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!