MVC3 assign variable on every page from single peice of code

Hi experts.

I'm new to MVC3 coming from an background.

I have a multi page size using razor views and a master layout page.

On the master page is a div that contains a banner image and what i wish to do is change that image depending on what page i go to.

So, what trying to find out is how to run code from the master page to populate a variable on the master page? In i would normally put query in the master page's .cs file and either push the variable to the front page or pull the variable from the code.

I realise that i could create a  public void and call this from the each pages action result, but I'm sure there must be a way to put the code in once and have it called automatically by each page.

Who is Participating?
Create a base controller and have your controllers inherit from this basecontroller.
in the constructor of the controller initialize a TempData varable with the path of the your image
TempData["MyMasterImage"]="path to the image"
reference the TempData["MyMasterImage"] in the master view

Vipul Patel.NET ExpertCommented:
<img src="@ViewData["masterImage"]" title="src="@ViewData["masterImage"]"" />
Manipulate ViewData in the basecontroller suggested by sammy1971

Create HTML helper class

public static MvcHtmlString MasterImage(this HtmlHelper html)
   Action and Controller name can be found in the html object.
   Based on different action return image path and use it below.
        case "action1": imagepath = "\image1.jpg"; break
        case "action2": imagepath = "\image2.gif"; break
    var imgBuilder = new TagBuilder("img");
    imgBuilder.MergeAttribute("src", url.Content(imagePath));
    imgBuilder.MergeAttribute("alt", alt);
    string imgHtml = imgBuilder.ToString(TagRenderMode.SelfClosing);

    return MvcHtmlString.Create(imgHtml );

use in master page

fusioninternetAuthor Commented:
Yes basecontroller was the way to go and got it to work as i wnated once I managed to find out where to create a base controller and how to reference it
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.