Що таке "логіка презентації" і наскільки вона прийнятна для поглядів?


13

У своєму веб-додатку я маю надати форму для створення та редагування. Форми створення та редагування мають незначні відмінності, тому я думаю, що я можу зробити щось подібне на мою думку:

<form>
// a lot of htnl goes here 
@if (editing)
{
  // some more fields shown in edit mode
}
@if(!editing)
{
 // some stuff shown in create mode
}

Я завжди намагався не вносити жодних ifтверджень у свої погляди, але цього разу не бачу іншого варіанту, окрім копіювання величезної частини HTML у два місця, що я не хочу робити. Це правильна "логіка презентації" і чи є інші варіанти?

Відповіді:


17

Логіка презентації включає логіку та розрахунки, необхідні для правильного представлення бізнес-даних для певного перегляду.
Для складних графічних зображень це можуть бути досить складні обчислення (наприклад, обчислення розміру кожного шматочка пирога та розміщення міток для кругової діаграми), але головна характеристика полягає в тому, що він обчислює лише інформацію, що відповідає поточній переконання, що він жодним чином не змінює бізнес-дані.

Чи правильним є вибір полів для режиму редагування / створення, використовуючи логіку презентації, є дискусійним. Частково це залежить від виду та обсягу налаштування.
Наприклад, якщо різниця - це лише зміна заголовка або показ одного або двох полів як лише для читання в одному з режимів, то це може бути правильним вибором мати один вид і динамічно вибирати режими.
З іншого боку, моя перша реакція полягала в тому, що це дійсно повинні бути два різних погляди, де загальні частини імпортуються з третього файлу (подібно до того, як зазвичай до переглядів додаються заголовок і колонтитул).


12

Здається цілком розумним використовувати вигляд @if або два у поданні Razor.
Вони додали @if до Razor - це призначено для використання.

Ваш код можна скоротити до одного @if:

@if (editing)
{
  // some more fields shown in edit mode
}
else
{
 // some stuff shown in create mode
}

Альтернативою є використання трьох видів:

  • Часткове подання, що містить загальний HTML
  • Створити перегляд (викликає частковий вигляд)
  • Редагувати перегляд (також називає частковий вигляд)

Ви можете перевірити DisplayTemplates та EditorTemplates, які є хорошим способом розділити представлення даних лише для читання та для редагування.

http://www.growingwiththeweb.com/2012/12/aspnet-mvc-display-and-editor-templates.html

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.