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