A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.dotvvm.com/docs/tutorials/basics-routing/latest below:

Website Navigation


Overview | DotVVM Documentation

Routing overview

Every page in DotVVM needs to be registered in the route table. DotVVM doesn't allow visiting a page just by putting its path in the URL.

The routes are configured as part of the configuration in the DotvvmStartup class.

To separate the configuration options, the default project templates contain ConfigureControls, ConfigureRoutes and ConfigureResources methods, which are called from the Configure method. You can use any structure you like - the only requirement is that the Configure method performs all the configuration actions.

Register routes one by one

In simple web applications, you can register each route individually using the following code snippet:

config.RouteTable.Add("Page", "my/page/url", "Views/page.dothtml", new { });
Route groups

If you have several similar routes, you can register them as a group:

config.RouteTable.AddGroup("Admin", "admin", "Views/Admin", table =>
{
    table.Add("Customers", "customers", "Customers.dothtml");
    table.Add("Customer", "customer/{id}", "Customer.dothtml");
});

The AddGroup method allows specify a common prefix for all the routes. The routes will be registered according to the following table:

Route name Route URL Location Admin_Customers admin/customers Views/Admin/Customers.dothtml Admin_Customer admin/customer/{id} Views/Admin/Customer.dothtml

As you can see, the route name, route URL, and dothtml file location are composed from the AddGroup method parameters and the parameters of the particular route. Notice that the _ character is added between the group name and route name. Route URL and file location are treated like paths and joined by /.

Other route types

If you need to register a route which should not be treated as .dothtml file, e.g. if you need a handler that serves files, generates RSS feeds or anything like that, you can declare a custom presenter and specify a method, that creates an instance of it, as the fifth parameter.

If you change the URLs in your app, you can use redirection routes to preserve the old URLs.

If you have a larger project, you may want to use conventions to auto-discover routes instead of registering them one by one.

Using RouteLink to create links between pages

To create hyperlinks to DotVVM pages, it is recommended to use the RouteLink controls:

<dot:RouteLink RouteName="ArticleDetail" 
               Param-Id="{value: CurrentArticleId}" 
               Param-Title="{value: CurrentArticleTitle}" />

The route parameters can be specified using properties starting with Param-. If the parameter is not specified, and the current page has a parameter with the same name, the value from the current page will be used.

If the current page doesn't have this parameter, the default value from the route will be used. If no default value for the parameter is not specified, an empty string will be substituted for this parameter.

Redirect to another route

If you want to redirect the user to another page from the viewmodel code, you can call Context.RedirectToRoute("routeName", new { Param1 = param... }).

See also

plane github videos sample theme academy controls tutorial twitter facebook search list

Information about cookies

We use cookies to analyze our traffic, personalize content and ads, and to provide some social media features. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you've provided to them or that they've collected from your use of their services.

Choose which cookies you want to enable

Necessary cookies Always allowed

Necessary cookies are essential and maintain information based on your activity on our site, like remembering your signed in account, selection of your language, or products added to the shopping cart. The website cannot work properly without these cookies.

Google Analytics

We use these cookies to measure, collect, analyse and report how users interact with our sites to better understand their behavior. Thanks to this, we can improve the site and provide better experience. The analytics service is provided by Google Inc.

Google Ads

We use these cookies to measure conversions from our advertisement and banners distributed via Google Ads. This allows us to better target the ads and make them more relevant to you.

Facebook Pixel

We use these cookies to measure conversions from our advertisement and banners distributed via Facebook. This allows us to better target the ads and make them more relevant to you.

Smartlook

We use these cookies to measure, collect, analyse and report how users interact with our sites to better understand their behavior. Thanks to this, we can improve the site and provide better experience. The analytics service is provided by Smartlook.

Google ads user data Google ads ad personalization

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4