Question

I have a master layout for a conference registration system, what I'm trying to do is to display the number of registered users in the master layout.

What is the best way to do that ?

I can call a static method to get this count, but from my knowledge, this is a violation of the MVC standards, because interaction between a page and the server should be only through Controller/Action method.

So what is the best way to do this ?

Was it helpful?

Solution

When I need to display data in the layout page, particularly if it's a small amount of data, I usually put that data into ViewBag/ViewData. Otherwise you need a base class model that every developer has to remember to inherit from to carry the data into the view. The ViewBag/ViewData can then be populated by an OnResultExecuting filter on the base controller class.

OTHER TIPS

You need to have main Model/ViewModel for all of your pages or use two or multiple Models/ViewModel in targeted pages. In this way you pass all required data to view via controller methods perhaps by calling a static method in methods. see the following articles to employ the above techniques:

  1. Two models in one view in ASP MVC 3
  2. Multiple models in a view

Another way is storing related data in ViewBag or ViewData Dynamic types in controller methods each time needed and then prepare and use them in View. Note that using them should be avoided in favor of using strongly typed ViewModels.

cheers.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top