Трудно ответить на такой неопределенный вопрос, как этот, без подробностей о конкретном сценарии, которого вы хотите достичь, и который не работает.
Вы можете вернуть Sharp Pages несколькими способами:
- Когда он запрашивается непосредственно как страница содержимого, например,
/dir/page
-> /dir/page.html
- Использование Маршрутизация на основе страницы , например,
/dir/1
-> /dir/_id.html
- В качестве Просмотр страницы в ответ на Услугу, когда она названа в честь Запрос DTO или Ответ DTO , например
/contacts/1
-> /Views/GetContact.html
или /Views/GetContactResponse.html
Выберите, какое представление следует визуализировать внутри вашей Службы, вернув свой DTO Response внутри пользовательского HttpResult
:
public object Any(MyRequest request)
{
...
return new HttpResult(response)
{
View = "CustomPage", // -> /Views/CustomPage.html
//Template = "_custom-layout",
};
}
Добавьте [ClientCanSwapTemplates]
Атрибут «Запросить фильтр», позволяющий изменить представление и шаблон в QueryString, например: ?View=CustomPage&Template=_custom-layout
[ClientCanSwapTemplates]
public object Any(MyRequest request) => ...
Выбор страницы, которую вы хотите отобразить внутри вашей службы контроллера представления модели возвращая пользовательский PageResult
:
public class CustomerServices : Service
{
public object Any(ViewCustomer request) =>
new PageResult(Request.GetPage("examples/customer")) {
Model = TemplateQueryData.GetCustomer(request.Id)
};
}
Примечание: SharpPagesFeature
разрешает страницы с помощью yoтвой каскад AppHost.VirtualFileSources
.В .NET Core он настроен на использование WebRoot , например, /wwwroot
.
. Для Sharp Pages возвращает свой ответ в нескольких типах контента:
, а также возвращает необработанную модель в различных форматах.
Вам необходимо использовать Sharp API , значение которых return
, например / hello/_name/index.html:
{{ { result: `Hello, ${name}!` } | return }}