ServiceStack razor default page

前端 未结 1 1958
终归单人心
终归单人心 2020-12-01 11:34

Say I have 2 pages

  1. /NotADefault.cshtml

  2. /Views/Default.cshtml

Question 1.

相关标签:
1条回答
  • 2020-12-01 11:52

    In ServiceStack:

    • Razor Pages that exist within the /Views/ folder are called View Pages
    • Razor Pages that exist anywhere else are called Content Pages

    The difference between them is that View Pages are Razor views that are used to provide the HTML representations (aka views) for services in much the same way View Pages work for MVC Controllers.

    View Pages cannot be called directly, that's the role of Content Pages, which can only be called directly, i.e. outside the context of a service (or redirected to, from a service).

    In Razor Rockstars, examples of Content Pages include:

    • /stars/dead/cobain/ which calls the /stars/dead/Cobain/default.cshtml Content Page
    • /TypedModelNoController which calls the /TypedModelNoController.cshtml Content Page

    Whereas examples of View Pages include:

    • /rockstars which matches the /rockstars route on the /RockstarsService.cs and because of the [DefaultView("Rockstars")] attribute, uses the /Rockstars.cshtml View Page

    Default Pages

    For Content Pages the default.cshtml is the index page for a folder. So to set a default page for the root / path, create a /default.cshtml page. An example of this is /default.cshtml home page used in the Reusability demo.

    If you want to use a view page as the Home page, you can set the default redirect to it by adding the AppHost config:

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

    Which would call a service matching the /home route that will use the most appropriate View Page based on the rules laid out in the Razor Rockstars page.

    0 讨论(0)
提交回复
热议问题