Мы старательно изучаем Orchard с целью создания не веб-сайтов, а бизнес-ориентированных веб-приложений, которые мы обычно пишем в течение нескольких месяцев с помощью MVC, но надеемся, что они будут намного эффективнее используя уже имеющиеся компоненты.Формы ввода данных Orchard без администратора
Последняя миля, однако, кажется, большой блок - как рассказать Орчард, что он должен создать форму, которая позволяет конечному пользователю редактировать некоторые данные? На большинстве редактирования конечного пользователя есть хороший бит: Creating a module for Orchard that stores data from the front-end, но он поднимается после того, как данные уже введены и переносятся через операцию POST контроллера. Я не могу понять, как пройти начальную операцию GET.
Чтобы разработать, в прямом MVC я могу позволить пользователю вводить информацию о себе. Поэтому у меня есть /Controllers/PersonController.cs и там написана функция Create(). Я бы добавил View в /Views/Person/Create.cshtml и просто «return View()» с контроллера. В Create (Person p), метод HTTPGet, я бы сделал тяжелый подъем, чтобы сохранить объект.
Теперь в саду я получил свою персональную партию и ее PersonPartDriver, которые, как я понимаю из вышеприведенной статьи, я бы написал свой метод POST, чтобы принять PersonPart и сохранить объект.
class PersonController : Controller
{
private readonly IRepository<PersonPartRecord> personRepository;
public PersonController(IRepository<PersonPartRecord> _personRepository) {
personRepository = _personRepository;
}
[HttpPost]
public Create(PersonPart part) {
personRepository.Create(part.Record);
}
}
Все хорошо, но как бы я Orchard, чтобы вызвать редактор GET (динамический PersonPart,) метод, чтобы получить форму для пользователя, чтобы сделать первоначальный ввод данных?
protected override DriverResult Editor(PersonPart part, dynamic shapeHelper)
{
return ContentShape("Parts_Person_Edit",
() => shapeHelper.EditorTemplate(
TemplateName: "Parts/Person",
Model: part,
Prefix: Prefix));
}
Или я могу написать метод GET Create() в контроллере? Если я это сделаю, я обойду всю систему создания фигуры, нет? Что-то шевельнулось в моей голове, и я предпочел бы делать Display(), а в шаблоне просто сделать его редактируемой формой, но у меня есть Display() для просмотра в режиме «Readonly» Person ... как сделать он знает, что мне нужен редактируемый вид?
Надеюсь, что вопрос имеет смысл и надеется, что кто-то может помочь.
Спасибо.