Get The Controller And Action in MVC using HtmlHelper
Usage : you can use the above code in any view.cshtml Like the following with @Html
To get controller and Action we will use the following code snippet. we can access it from routvalues collection
routeValues["controller"];
To get Action name we can use the following code snippet
routeValues["action"];
but for the ease of use we can use it in HtmlHelper. we embed these two statements to htmlhelper By using the power of Extension Methods in C#.
Add the following class to your MVC projectusing System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
public static class HtmlRequestHelper
{
public static string Id(this HtmlHelper htmlHelper)
{
var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;
if (routeValues.ContainsKey("id"))
return (string)routeValues["id"];
else if (HttpContext.Current.Request.QueryString.AllKeys.Contains("id"))
return HttpContext.Current.Request.QueryString["id"];
return string.Empty;
}
public static string Controller(this HtmlHelper htmlHelper)
{
var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;
if (routeValues.ContainsKey("controller"))
return (string)routeValues["controller"];
return string.Empty;
}
public static string Action(this HtmlHelper htmlHelper)
{
var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;
if (routeValues.ContainsKey("action"))
return (string)routeValues["action"];
return string.Empty;
}
}
Usage : you can use the above code in any view.cshtml Like the following with @Html
<div class="row">
<div class="col-lg-12">
<div class="col-lg-4">
<label>Controller =</label>
<label>@Html.Controller()</label>
</div>
<div class="col-lg-4">
<label>Action =</label>
<label>@Html.Action()</label>
</div>
</div>
</div>
The above code will return you the current controller and current requested action names
Post a Comment
Post a Comment