Servicestack Razor Markdown视图分辨率



我想在我的应用程序中显示经过facebook身份验证后的视图,但我得到的是json响应而不是html视图,根据文档,视图分辨率如下:

ServiceStack用于解析用于呈现HTML输出的适当Markdown模板的解析顺序为:

  1. 如果Web服务指定了一个模板(通过自定义的IHttpResult.TemplateName响应),则使用该名称创建视图
  2. 与响应DTO同名的视图,先在/Views中查找,然后在/Views/Shared中查找
  3. 与请求DTO同名的视图,先在/Views中查找,然后在/Views/Shared中查找

这些是我的DTO

 public class FacebookRequest{}
 public class FacebookResponse{}

这是我的路线配置

Routes.Add<FacebookRequest>("/User/facebook");

我的观点有以下代码:

@inherits ViewPage<MyProject.Services.Dto.FacebookResponse>
this is a facebook response

服务方式:

 [ClientCanSwapTemplates]
  public FacebookResponse Get(FacebookRequest userRequest)
  {
      return new FacebookResponse();
  }

据我所知,如果我在"视图"目录中有一个具有相同响应DTO的视图,它应该将该视图与服务的响应连接起来。

添加注释作为答案

SS使用响应DTO类的确切名称,并在文件系统上查找具有该确切名称的视图文件,除非您提供DefaultView属性。因此,如果您的视图(在您的示例中)不是Views/FacebookResponse.cshtml,它将不起作用。使用inherits-viewpage语句并不能帮助SS解析视图。它在特定位置查找确切的文件名。我并不是100%相信这一点,但我似乎记得这也是一场区分大小写的比赛。

最新更新