16

假设我有 2 页

  1. /NotADefault.cshtml

  2. /Views/Default.cshtml

问题 1。

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

问题2。

我也有NotADefaultService.csDefaultService.cs。我在每个页面的后面都给了一个服务类。但是,当页面A被调用时,NotADefaultService.cs永远不会被调用。只有DefaultService.cs在页面B被调用时才会被调用......

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

结合 Q1 和 Q2。

我如何:

选项 1.让后端服务类在/ root“查看”文件夹之外工作?

或者

选项 2./View/Default.schtml在启动时指定我的默认服务类可以被击中?

4

1 回答 1

24

ServiceStack中:

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

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

View Pages不能直接调用,这就是Content Pages的作用,只能直接调用,即在服务的上下文之外(或从服务重定向到)。

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

查看页面的示例包括:

默认页面

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

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

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

根据Razor Rockstars页面中列出的规则,这将调用匹配路线的服务,该路线将使用最合适的查看页面。/home

于 2012-11-03T05:20:52.363 回答