我有一个ServiceStack
。Service
实现,它定义了一个必须返回HTML
标记但只包含片段的方法。我试图只设置View
对象的HttpResult
属性而不指定Razor
视图中的布局,也不设置结果的Template
属性 - 我期望只获得视图标记,但情况并非如此。
该视图源自ViewPage
。服务功能看起来像......
public class SampleService : Service
{
public IHttpResult Get(GetSampleRequest request)
{
return new HttpResult
{
View = "SampleView"
};
}
}
问题是ServiceStack
尝试找到默认布局(存在)并使用它。我怎么能防止这种情况?在ASP.NET MVC中,我通常只返回Partial
扩展方法的结果; ServiceStack
中是否存在类似的内容?
答案 0 :(得分:3)
您需要在剃刀视图中将Layout
定义为空。
但是,将其设置为null
只是默认使用_Layout.cshtml
页面(或任何定义为默认值的页面)。
在您的剃刀视图中,将Layout
设置为""
,如下所示:
@{
Layout = "";
}
您也可以设置Layout = string.Empty
。两者都有相同的预期效果。
希望这有帮助! :)
答案 1 :(得分:2)
您还可以设置一个不包含任何内容或仅包含注释的布局,以表明它是蓄意的"_LayoutEmpty.cshtml"
。一种设计选择与一个空字符串名称。
答案 2 :(得分:0)
在Razor View中,添加
@{ Layout = null; }