Say I have 2 pages
/NotADefault.cshtml
/Views/Default.cshtml
Question 1.
Now I run it, page A
always gets called implicitly as start-up default page no matter what I name it.
Page B
will only be called when I explicitly call localhost/View/Default. How do I make page B
(the one in View folder) my default page?
Question 2.
I also have NotADefaultService.cs
and DefaultService.cs
. I give each page a Service class at the back. However, when page A
is called NotADefaultService.cs
never gets called. Only DefaultService.cs
gets called when page B
is called...
My observation is that only the pages in the View
folder will get their back-end service class working. Outside of View
folder it doesn't work.
Combining Q1 and Q2.
How do I:
Option 1. get the backend service class working under / root
outside "View" folder?
OR
Option 2. appoint /View/Default.schtml
as my default at start-up where the service class can be hit?
All Razor files end with . cshtml. Most Razor files are intended to be browsable and contain a mixture of client-side and server-side code, which, when processed, results in HTML being sent to the browser. These pages are usually referred to as "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.
In ServiceStack:
/Views/
folder are called View 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:
Whereas examples of View Pages include:
/rockstars
route on the /RockstarsService.cs and because of the [DefaultView("Rockstars")]
attribute, uses the /Rockstars.cshtml View Page
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With