如何从ServiceStack服务返回没有布局的视图结果

本文关键字:布局 视图 结果 返回 ServiceStack 服务 | 更新日期: 2023-09-27 18:02:49

我有一个ServiceStack。定义必须返回HTML标记但仅返回片段的方法的Service实现。我试图只设置HttpResult对象的View属性,而不在Razor视图中指定布局,也不设置结果的Template属性——我希望只获得视图标记,但事实并非如此。

该视图源自ViewPage。服务功能看起来是这样的。。。

public class SampleService : Service
{
    public IHttpResult Get(GetSampleRequest request)
    {
        return new HttpResult
        {
            View = "SampleView"
        };
    }
}

问题是ServiceStack试图找到一个默认布局(存在(并使用它。我该如何防止这种情况发生?在ASP.NET MVC中,我通常只返回Partial扩展方法的结果;CCD_ 11中是否存在类似的东西?

如何从ServiceStack服务返回没有布局的视图结果

您需要在Razor视图中将Layout定义为空。

然而,将其设置为null只是默认使用_Layout.cshtml页面(或任何定义为默认值的页面(。

在Razor视图中,将Layout设置为"",如下所示:

@{
    Layout = "";
 }

您也可以设置Layout = string.Empty。两者都具有相同的预期效果。

希望这能有所帮助!:(

您还可以设置一个不包含任何内容或仅包含注释的布局,以表明它是经过深思熟虑的"_LayoutEmpty.cshtml"。这是一种设计选择,而不是一个空字符串名称。

在Razor视图中,添加

@{ Layout = null; }