说我有2页
/NotADefault.cshtml
/Views/Default.cshtml
问题1。
现在我运行它,页面A
总是被隐式调用作为启动默认页面,无论我命名它。
只有当我明确调用localhost / View / Default时才会调用页面B
。如何将页面B
(View文件夹中的页面)设为我的默认页面?
问题2。
我还有NotADefaultService.cs
和DefaultService.cs
。我在后面为每个页面提供了一个Service类。但是,当调用页面A
时,NotADefaultService.cs
永远不会被调用。调用页面DefaultService.cs
时仅调用B
...
我的观察是,只有View
文件夹中的页面才能使其后端服务类正常工作。在View
文件夹之外,它不起作用。
结合Q1和Q2。
我如何:
选项1。让后端服务类在{View}文件夹外的/ root
下运行?
OR
选项2。在启动时指定/View/Default.schtml
作为我的默认设置,可以点击服务类?
答案 0 :(得分:23)
在ServiceStack中:
/Views/
文件夹中存在的Razor页面称为查看页面 它们之间的区别在于查看页面是用于提供HTML表示(又称视图)服务的Razor视图,其方式与查看页面的工作方式大致相同对于MVC控制器。
查看页面无法直接调用,内容页面的作用,只能直接调用,即在上下文之外服务(或重定向到服务)。
在Razor Rockstars中,内容页面的示例包括:
查看页面的示例包括:
/rockstars
路线相匹配,由于[DefaultView("Rockstars")]
属性,使用/Rockstars.cshtml 查看页面 对于内容页面,default.cshtml
是文件夹的索引页面。因此,要为根/
路径设置默认页面,请创建/default.cshtml
页面。这方面的一个示例是/default.cshtml演示中使用的Reusability主页。
如果您想将视图页面用作主页,可以通过添加AppHost配置来设置默认重定向:
SetConfig(new HostConfig {
DefaultRedirectPath = "/home"
});
根据Razor Rockstars页面中列出的规则,将匹配/home
路由的服务将使用最合适的视图页。