1

我想在我的应用程序中进行 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();
  }

据我了解,如果我有一个位于“views”目录中的具有相同 responseDTO 的视图,它应该将视图与来自服务的响应连接起来。

4

1 回答 1

1

添加评论作为答案

SS 使用响应 DTO 类的确切名称并在文件系统上查找具有该确切名称的视图文件,除非您提供 DefaultView 属性。因此,如果您的视图(在您的示例中)不完全是 Views/FacebookResponse.cshtml,它将无法正常工作。使用继承 viewpage 语句并不能帮助 SS 解析视图。它在特定位置寻找确切的文件名。我对此不是 100% - 但我似乎记得这也是一个区分大小写的匹配。

于 2013-08-06T16:59:44.220 回答