В общем да . Иногда это утомительно, но соотношение «вид» модели к соотношению 1: 1 работает очень хорошо и разделяет проблемы.
public class ContactFormViewModel
{
public string Name { get; set; }
public string Email { get; set; }
public string WebsiteName { get; set; }
}
Если бы вы использовали встроенный каркас Visual Studio (, предполагающий версию 3 синтаксиса MVC и Razor ) для генерации представления, наследующего эту модель представления, это выглядело бы примерно так:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>ContactFormViewModel</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
...
Это дает вам пару вещей:
- Небольшой CSS-стиль (опять же, шаблонизация по умолчанию)
- Валидация
- 1 Модель для изменения при изменении логики формы контакта