У нас есть ViewModel для «создания» и одна для «редактирования». Редактирование наследуется от создания, поэтому мы используем общие поля. Затем мы используем @Html.EditorForModel("User"), который использует "create" в качестве своей модели.
Это для редактирования пользователей, поэтому мне нужно, чтобы поле пароля требовалось при создании, но не требовалось при удалении. Таким образом, виртуальная машина создания имеет пароль с атрибутом [Required], а виртуальная машина редактирования имеет свойство пароля без оформления и также объявлена с новым (публичная новая строка Password {get;set;}).
Это почти точно похоже на этот вопрос: Условно-обязательная аннотация MVC4
В моей ситуации по-прежнему требуется поле, которое, как я полагаю, связано с тем, что EditorTemplate использует объект создания в качестве своей модели вместо редактирования. Я попытался изменить его с editorformodel на:
@Html.EditorFor(model=>model, "User")
в надежде, что, поскольку редактирование на самом деле является «созданием» из-за наследования, оно сработает, но оно все еще лает на меня за то, что я не указал обязательное поле при публикации.
Есть ли способ выполнить то, что я пытаюсь, или есть ли у меня варианты либо удалить требуемое и обработать его на стороне сервера, либо разделить шаблон редактора на два шаблона?