У меня есть представление, в котором можно как создавать, так и редактировать элемент, который я разделил на частичные представления:
MainEditView.cshtml
_CreateChildDialog.cshtml
_EditChildDialog.cshtml
У меня есть отдельные модели представления для элементов Create и Child:
public class CreateChildViewModel
{
public string ItemText { get; set; }
}
public class EditChildViewModel
{
public string ItemText { get; set; }
}
Поскольку частичные представления для диалоговых окон «Редактировать» и «Создать» будут отображаться на одной странице, у меня будет конфликт для идентификаторов и имен форм ..., поскольку они оба называются ItemText.
Можно ли настроить привязку этих элементов без написания привязки пользовательской модели?
Я хотел бы сделать что-то вроде:
public class EditChildViewModel
{
[BindFrom("EditItemText")]
public string ItemText { get; set; }
}
Или это просто имеет больше смысла дляпереименуйте свойства ViewModel в:
public class EditChildViewModel
{
public string EditItemText { get; set; }
}
public class CreateChildViewModel
{
public string CreateItemText { get; set; }
}
РЕДАКТИРОВАТЬ Основываясь на разговоре с Дарином, я хочу сделать это немного более понятным.
Мой родитель имеет действие Редактировать.Когда вы редактируете Parent, вы никогда не создадите новый дочерний элемент или не отредактируете дочерний элемент при вызове действия ParentController.Edit.
У меня есть отдельный контроллер для дочернего объекта, который имеет метод Create и Edit:
public class ChildController
{
public ActionResult Edit() {}
public ActionResult Create() {}
}
Я использую вызовы jQuery для асинхронной публикации на этом контроллере при редактировании или создании дочернего элемента.В основном я использую диалог jquery для создания / редактирования дочернего элемента, который будет сразу же сохранен, когда я нажму Ok в диалоговом окне.Это может произойти даже до нажатия кнопки «Сохранить» для действия «Изменить родительское имя».