Have you ever needed to know what Action
and/or Controller
that is currently used in your View
? This might be most helpful in an Layout
-file, used by another View
.
string currentAction =
ViewContext.Controller.ValueProvider.GetValue("action").RawValue.ToString();
string currentController =
ViewContext.Controller.ValueProvider.GetValue("controller").RawValue).ToString();
Then you can do customization code like this in your _Layout.cshtml
-file.
bool isIndexPage = currentAction.Equals("index", StringComparison.InvariantCultureIgnoreCase)
&& currentController.Equals("blog", StringComparison.InvariantCultureIgnoreCase);
Disclaimer: Of course this breaks the fundamental rules of separation of concerns in MVC, between the View
and the Controller
, but sometimes you just don't want, or can, pass around sufficient data between the View
and the Controller
.