public class AController : Controller
{
public ActionResult Index()
{
return View();
}
}
and Index view goes like
...
@Html.Action("Index", "BController", new { HasEditPermission = true })
...
BControler goes like
public class BController : Controller
{
public ActionResult Index()
{
return PartialView();
}
}
and this Index Partial view goes like
...
@if (!string.IsNullOrEmpty(Request.Params["HasEditPermission"]) && bool.Parse(Request.Params["HasEditPermission"]))
{
// some html rendering
}
...
here when I do Request.Params["HasEditPermission"]
in the partial view, I get null.. but if I include HasEditPermission
as a parameter to my Index
action of BController
then I get the value..
I think, I am not getting it from Request.Params
because actual request is to AController
Index
action which doesn't include this parameter.
But I am wondering how is it binding the value to HasEditPermission parameter of Index action(suppose if I have it there) of BController?
Please could someone tell me how do I access it directly in the view? (I am aware using ViewBag in Index is an option)
You can use
ValueProvider.GetValue("HasEditPermission").RawValue
to access the value.Controller:
View:
Update:
Request.Params
gets a combined collection of QueryString, Form, Cookies, and ServerVariables items not RouteValues.In
HasEditPermission
is aRouteValue
.you can also try something like this
in your View and subsequent child action views as well..