使用ServiceStack 的 Razor Story,我们有多种方法来选择我们想要使用哪个 Razor 视图来呈现页面。更好,对我来说至关重要的是,我们还可以传入 Content-Type 标头(或查询字符串参数,甚至是页面“后缀”)以返回各种格式的原始模型。
有没有办法使用ServiceStack 模板(现在称为SharpScript)来做同样的事情?我按照这里的例子,但我只是得到标准的 HTML 格式响应。它不使用我的模板,无论如何命名。
按照v5.5 发行说明中的示例:
[Route("/hello/{Name}")]
public class Hello : IReturn<HelloResponse>
{
public string Name { get; set; }
}
public class HelloResponse
{
public string Result { get; set; }
}
public class HelloService : Service
{
public object Any(Hello request) => new HelloResponse { Result = $"Hello, {request.Name}!" };
}
Going to/hello/World?format=html
为我提供标准的 HTML 报告,而不是我的模板。我按照另一个示例强制它使用模板....
public object Any(Hello request) =>
new PageResult(Request.GetPage("examples/hello")) {
Model = request.Name
};
...并且它总是返回我的模板,即使我指定/hello/World?format=json
.
有什么方法可以为 ServiceStack + ScriptSharp 页面提供类似 Razor 的视图选择,而且还支持不同的响应格式?