Форум → Программирование → Пыхнуть хотите? → Готовые решения → Оцените наш проект
Оцените наш проект
Страницы: ← Предыдущая страница →
-
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.
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!