Declare ViewBag on controller

2019-07-16 04:54发布

问题:

I'm using ViewBag.Message with the same message several times into the methods on the controller. It is possible to declare ViewBag.Message on the top of the class, so can be used in the whole controller without repeat the code?

回答1:

Assuming Razor syntax you can achieve this with.

@{string pageMessage = ViewBag.Message.ToString();}

then pageMessage is a local variable available to the page, for example:

<h1>@pageMessage</h1>

EDIT

ViewBag is a dynamic object which is a member of the Controller base class so to just specify this once in the whole controller you could put something in your controller constructor.

public class MyController : Controller
{
        public MyController()
        {
            ViewBag.ViewTime = DateTime.Now.ToString();
        }

        // rest of controller code
}