Overriding/Changing Base Razor View Page Type in ASP.NET Core
Introduction:
Using razor views, sometimes we might need additional class properties/methods in all our views than we have in the existing built-in base razor view. For example, our all view pages might need title, keywords, etc. In ASP.NET Core, we can easily create a base razor view page class and set this class as a base razor view type for all our views. In this post, I will show you an example of this.
Description:
Note that I am using beta7 at the time of writing. Razor views are inherit from generic Microsoft.AspNet.Mvc.Razor.RazorPage class. We can create our custom base razor view class by inheriting RazorPage class,
1 |
public
abstract
class
MyRazorPage<T> :
RazorPage<T>
|
2 |
{
|
3 |
public
string
Title { get; set; }
|
4 |
public
string
Description { get; set; }
|
5 |
public
string[] Keywords { get; set; }
|
6 |
}
|
We have added three more properties in our base view. Now for making this class as our base razor view globally, we can register it in _ViewImports.cshtml file,
1 |
@inherits MyNameSpace.MyRazorPage<TModel>
|
Now we can use the new properties (Title, Description and Keywords) anywhere in our view.
Summary:
In this article, I showed you an example of how to create a base razor view page and then how to register this class globally.