servicestack,C#,servicestack" /> servicestack,C#,servicestack" />

C# ServiceStack razor默认页面

C# ServiceStack razor默认页面,c#,servicestack,C#,servicestack,假设我有两页 /NotADefault.cshtml /Views/Default.cshtml 问题1. 现在我运行它,页面A总是作为启动默认页面隐式调用,不管我如何命名它。 只有当我显式调用localhost/View/Default时,才会调用PageB。如何使页面B(视图文件夹中的一个)成为默认页面 问题2. 我还有NotADefaultService.cs和DefaultService.cs。我在后面给每一页一个服务类。但是,当调用页面A时,不会调用NotADefaultService

假设我有两页

  • /NotADefault.cshtml

  • /Views/Default.cshtml

  • 问题1.

    现在我运行它,页面
    A
    总是作为启动默认页面隐式调用,不管我如何命名它。
    只有当我显式调用localhost/View/Default时,才会调用Page
    B
    。如何使页面
    B
    (视图文件夹中的一个)成为默认页面

    问题2.

    我还有
    NotADefaultService.cs
    DefaultService.cs
    。我在后面给每一页一个服务类。但是,当调用页面
    A
    时,不会调用
    NotADefaultService.cs
    。调用页面
    B
    时,仅调用
    DefaultService.cs

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

    结合第一季度和第二季度。

    我如何:

    选项1。是否让后端服务类在
    /root
    外部的“视图”文件夹下工作

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

    中:

    • /Views/
      文件夹中存在的Razor页面称为查看页面
    • 存在于其他任何地方的Razor页面称为内容页面
    它们之间的区别在于查看页面是用于为服务提供HTML表示(也称为视图)的Razor视图,与查看页面为MVC控制器工作的方式大致相同

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

    在中,内容页的示例包括:

    • 它调用内容页
    • 它调用内容页
    查看页面的示例包括:

    • 与上的
      /rockstars
      路线匹配,并且由于
      [DefaultView(“rockstars”)]
      属性,使用查看页面
    默认页面 对于内容页
    default.cshtml
    是文件夹的索引页。因此,要为根路径设置默认页面,请创建一个
    /default.cshtml
    页面。演示中使用的主页就是一个例子

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

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

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

    使用DefaultRedirectPath时,是否可以执行任何操作以不在地址中显示/home?不,它仅重定向。您需要一个用于在自定义RawHttpHandler中impl处理默认请求的函数,或者需要一个catch all函数来为默认路由提供动态请求。有关可用的自定义挂钩的详细信息,请参阅。这是否意味着ServiceStack.Razor不遵循MVC模式(在某种程度上,视图页面除外)?不例外,您的服务(控制器)返回
    /Views
    目录中Razor页面(视图)的响应(模型)。外部页面(即内容页面)直接调用,不经过服务。这就是这个答案的本质所在。隐藏/主页