ServiceStack剃刀默认页面

时间:2012-11-03 04:45:12

标签: c# servicestack

说我有2页

  1. /NotADefault.cshtml

  2. /Views/Default.cshtml

  3. 问题1。

    现在我运行它,页面A总是被隐式调用作为启动默认页面,无论我命名它。
    只有当我明确调用localhost / View / Default时才会调用页面B。如何将页面B(View文件夹中的页面)设为我的默认页面?

    问题2。

    我还有NotADefaultService.csDefaultService.cs。我在后面为每个页面提供了一个Service类。但是,当调用页面A时,NotADefaultService.cs永远不会被调用。调用页面DefaultService.cs时仅调用B ...

    我的观察是,只有View文件夹中的页面才能使其后端服务类正常工作。在View文件夹之外,它不起作用。

    结合Q1和Q2。

    我如何:

    选项1。让后端服务类在{View}文件夹外的/ root下运行?

    OR

    选项2。在启动时指定/View/Default.schtml作为我的默认设置,可以点击服务类?

1 个答案:

答案 0 :(得分:23)

ServiceStack中:

  • /Views/文件夹中存在的Razor页面称为查看页面
  • 其他地方存在的Razor页面称为内容页面

它们之间的区别在于查看页面是用于提供HTML表示(又称视图)服务的Razor视图,其方式与查看页面的工作方式大致相同对于MVC控制器。

查看页面无法直接调用,内容页面的作用,只能直接调用,即在上下文之外服务(或重定向到服务)。

Razor Rockstars中,内容页面的示例包括:

查看页面的示例包括:

默认页面

对于内容页面default.cshtml是文件夹的索引页面。因此,要为根/路径设置默认页面,请创建/default.cshtml页面。这方面的一个示例是/default.cshtml演示中使用的Reusability主页。

如果您想将视图页面用作主页,可以通过添加AppHost配置来设置默认重定向:

SetConfig(new HostConfig { 
   DefaultRedirectPath = "/home"
});

根据Razor Rockstars页面中列出的规则,将匹配/home路由的服务将使用最合适的视图页。