我如何知道从哪个主视图调用局部视图?

时间:2015-12-01 07:01:53

标签: c# asp.net-mvc-4 razor

有什么方法可以让我知道从哪个主视图调用局部视图?

我从两个主视图调用了一个部分视图,其中包含不同的数据。

MainIndex1.cshtml
@Html.Partial("~/Views/Shared/_partialView.cshtml", Model)

MainIdex2.cshtml
@Html.Partial("~/Views/Shared/_partialView.cshtml", Model)

所以,在_partialView我怎么知道从哪个主视图调用它?

1 个答案:

答案 0 :(得分:1)

如果您想查看哪个控制器和操作正在参与调用此部分视图。因此,如果您想在此子操作中获取父上下文,则可以执行以下操作:

public ActionResult Menu()
{
    var rd = ControllerContext.ParentActionViewContext.RouteData;
    var currentAction = rd.GetRequiredString("action");
    var currentController = rd.GetRequiredString("controller");
    ...
    return View();
}

或者您也可以使用此代码查找当前请求的控制器和操作名称。

Controller: @ViewContext.Controller.ValueProvider.GetValue("controller").RawValue
<br />
View: @ViewContext.Controller.ValueProvider.GetValue("action").RawValue

在stackoverflow上引用以下线程..

Get the parent controller name from partialview action

希望这会对你有所帮助。 感谢