ServiceStack.Razor PartialViewResult эквивалент?

Есть ли способ вернуть ASP.NET MVC эквивалент PartialViewResult (автономное частичное) в ServiceStack.Razor?

В моем сервисе я хотел бы вернуть ответное DTO как обработанное частичное, а не полное представление; опять же, мне просто нужны некоторые отрендеренные фрагменты HTML для этого сервиса.

Вариант использования - сделать AJAX-вызов сервисом, а затем вернуть сервису обработанный фрагмент.

В одном из моих представлений я только что попробовал следующее, но он по-прежнему возвращает полную разметку HTML, а не только небольшой фрагмент.

внутри travel.cshtml...

@model TravelScenarioResponse

@Model.Name

1 ответ

Решение

Вы можете указать, чтобы не использовать макет с @layout ""Например:

@layout ""
@model TravelScenarioResponse

@Model.Name

В противном случае, если вы хотите, чтобы одно и то же представление использовалось с несколькими макетами и как частичное, вы можете добавить Views / Empty.cshtml, который просто содержит:

@RenderBody()

И используйте этот макет в любом переопределении View / Template, задокументированном в EmailContacts. Например, вы можете украсить свой Сервис или действие [ClientCanSwapTemplates] атрибут, например:

[ClientCanSwapTemplates]
public class MyService : Service { ... }

И тогда клиент может указать, с каким видом он хочет предоставлять сервис, так что вы можете просмотреть частичное, указав ?Template=Empty в строке запроса, например:

Другие вопросы по тегам