В Umbraco 7.0.3 I:
- Создан тип данных под названием «Контейнер макросов» с редактором свойств контейнера макросов.
- Создан тип документа под названием «Контактная форма» со свойством «Тело» с контейнером макроса «Тип».
- Создан частичный вид с именем _contactForm.cshtml (в Views\MacroPartials)
- Создан макрос под названием «Контактная форма» с частичным представлением MVC _contactFrom.cshtml
- Добавлен контент типа «Контактная форма» под названием «Свяжитесь с нами».
- Добавлен макрос контактной формы в свойство контейнера макросов под названием «Тело» на моей странице «Свяжитесь с нами».
Затем у меня есть Surface Controller
, который я вызываю с некоторыми AJAX
для отображения страницы (точнее, свойства страницы Body):
public class JsController : SurfaceController
{
public ActionResult GetPage(int id)
{
var page = new Node(id);
if (page == null || page.GetProperty("body") == null)
return Content(@"Hmm, something went wrong. Unable to find what you're looking for.");
return Content(page.GetProperty("body").Value);
}
}
Эта настройка почти работает, но проблема в том, что вместо отображаемой формы возвращается следующее:
<!--?UMBRACO_MACRO macroAlias="ContactForm" /-->
Итак, теперь мне нужно отобразить этот макрос\форму\частичное представление... Я думаю, что мне, вероятно, нужно сделать это в контроллере, но если я смогу сделать это с другой стороны (через Javascript), это тоже сработает. Есть ли функция Umbraco, которую я могу вызвать в контроллере для отображения макроса на основе идентификатора страницы и псевдонима макроса?