c# - Create Global variable in .NET Core 2.0 to use in razor views

C# - Create Global variable in .NET Core 2.0 to use in razor views

In .NET Core, you can create a global variable that can be used across different parts of your application, including Razor views. However, directly using global variables might not be considered a best practice. Instead, you can use a more structured approach by using dependency injection and sharing data through services.

Here's an example of how you might create a global variable in a .NET Core application:

  1. Create a service to hold the shared data:
// GlobalService.cs public class GlobalService { public string GlobalVariable { get; set; } } 
  1. Register the service in Startup.cs:
// Startup.cs public void ConfigureServices(IServiceCollection services) { // Other services... services.AddSingleton<GlobalService>(); } 
  1. Inject the service into your controllers or views where needed:
// SomeController.cs public class SomeController : Controller { private readonly GlobalService _globalService; public SomeController(GlobalService globalService) { _globalService = globalService; } public IActionResult Index() { // Use the global variable ViewBag.GlobalVariable = _globalService.GlobalVariable; return View(); } } 
  1. Use the data in your Razor views:
<!-- Index.cshtml --> <div> Global Variable: @ViewBag.GlobalVariable </div> 

This way, you have a global service that can be injected wherever needed, and it provides a more structured approach than using direct global variables.

Remember that using dependency injection and services is often a better practice than using global variables directly, as it promotes separation of concerns and testability.

Examples

  1. "C# .NET Core 2.0 global variable in Razor view"

    // In Startup.cs public void ConfigureServices(IServiceCollection services) { services.AddSingleton<GlobalVariables>(); } // GlobalVariables.cs public class GlobalVariables { public string MyGlobalVariable { get; set; } } // In your controller public class YourController : Controller { private readonly GlobalVariables _globalVariables; public YourController(GlobalVariables globalVariables) { _globalVariables = globalVariables; } public IActionResult YourAction() { _globalVariables.MyGlobalVariable = "Hello from Global Variable!"; return View(); } } 
    • Configures a singleton service in Startup.cs to hold global variables and injects it into controllers.
  2. "C# .NET Core 2.0 global variable in Razor view with ViewBag"

    // In your controller public class YourController : Controller { public IActionResult YourAction() { ViewBag.MyGlobalVariable = "Hello from ViewBag!"; return View(); } } 
    • Uses ViewBag to set a global variable in the controller and access it in the Razor view.
  3. "C# .NET Core 2.0 global variable in Razor view with ViewData"

    // In your controller public class YourController : Controller { public IActionResult YourAction() { ViewData["MyGlobalVariable"] = "Hello from ViewData!"; return View(); } } 
    • Uses ViewData to set a global variable in the controller and access it in the Razor view.
  4. "C# .NET Core 2.0 global variable in Razor view with TempData"

    // In your controller public class YourController : Controller { public IActionResult YourAction() { TempData["MyGlobalVariable"] = "Hello from TempData!"; return View(); } } 
    • Uses TempData to set a global variable in the controller and access it in the Razor view.
  5. "C# .NET Core 2.0 global variable in Razor view with Session"

    // In Startup.cs services.AddSession(); // In your controller public class YourController : Controller { public IActionResult YourAction() { HttpContext.Session.SetString("MyGlobalVariable", "Hello from Session!"); return View(); } } 
    • Configures and uses Session to set a global variable in the controller and access it in the Razor view.
  6. "C# .NET Core 2.0 global variable in Razor view with IViewDataContainer"

    // In your controller public class YourController : Controller, IViewDataContainer { public void SomeAction() { ViewData["MyGlobalVariable"] = "Hello from IViewDataContainer!"; } } 
    • Implements IViewDataContainer in the controller to directly access ViewData in the Razor view.
  7. "C# .NET Core 2.0 global variable in Razor view with Dependency Injection"

    // In Startup.cs services.AddSingleton<MyGlobalVariables>(); // MyGlobalVariables.cs public class MyGlobalVariables { public string MyVariable { get; set; } } // In your controller public class YourController : Controller { private readonly MyGlobalVariables _myGlobalVariables; public YourController(MyGlobalVariables myGlobalVariables) { _myGlobalVariables = myGlobalVariables; } public IActionResult YourAction() { _myGlobalVariables.MyVariable = "Hello from Dependency Injection!"; return View(); } } 
    • Uses Dependency Injection to inject a global variable holder and access it in the Razor view.
  8. "C# .NET Core 2.0 global variable in Razor view with Action Filters"

    // MyActionFilter.cs public class MyActionFilter : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext context) { context.HttpContext.Items["MyGlobalVariable"] = "Hello from Action Filter!"; base.OnActionExecuting(context); } } // In your controller [MyActionFilter] public class YourController : Controller { public IActionResult YourAction() { // Access the global variable in the action or Razor view var myGlobalVariable = HttpContext.Items["MyGlobalVariable"]; return View(); } } 
    • Uses an Action Filter to set a global variable in the HttpContext.Items collection.
  9. "C# .NET Core 2.0 global variable in Razor view with Razor Pages"

    // MyGlobalVariable.cshtml.cs public class MyGlobalVariableModel : PageModel { public string MyGlobalVariable { get; set; } public void OnGet() { MyGlobalVariable = "Hello from Razor Page!"; } } 
    • Sets a global variable in a Razor Page model and accesses it in the Razor view.
  10. "C# .NET Core 2.0 global variable in Razor view with ViewBag from Middleware"

    // MyMiddleware.cs public class MyMiddleware { private readonly RequestDelegate _next; public MyMiddleware(RequestDelegate next) { _next = next; } public async Task Invoke(HttpContext context) { context.Items["MyGlobalVariable"] = "Hello from Middleware!"; await _next(context); } } // In Startup.cs app.UseMiddleware<MyMiddleware>(); // In your controller or Razor view var myGlobalVariable = HttpContext.Items["MyGlobalVariable"]; 
    • Uses middleware to set a global variable in HttpContext.Items accessible in the controller or Razor view.

More Tags

qemu linq-to-nhibernate nullpointerexception shutil controlvalueaccessor auto-versioning optional-parameters activation cloudfiles key-bindings

More Programming Questions

More Gardening and crops Calculators

More Internet Calculators

More Financial Calculators

More Investment Calculators