如何从区域视图调用主要动作?
How to call main action from area view?
我的项目结构是:
MainProject(项目名称)
区域--->管理(包含视图、控制器等)
控制器
观看次数
我的项目中有一个区域。
现在我想使用主布局查看管理区域,主布局调用了一些 actions.when 我的项目正在执行时在 @Html.Action("Index"("Index", "Language" ) 在主布局中,找不到此视图。
我的主布局代码是:
@using Constants
@using SquishIt.Framework
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title</title>
<meta name="description" content="@ViewBag.MetaDesc" />
@RenderSection("SocialMeta", false)
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div>
@Html.Action("Index", "Language" )
</div>
.
.
</div>
</body>
我的管理区视图代码是:
@model AdminModerateViewModel
@{
ViewBag.Title = "management";
Layout = string.Concat("~/Views/Shared/", "_Layout", ".cshtml");
}
<div>
........
</div>
Html.Action
提供了如下所示的覆盖:
public static MvcHtmlString Action(
this HtmlHelper htmlHelper,
string actionName,
string controllerName,
RouteValueDictionary routeValues
)
注意最后一个参数:routeValues
。
如果未指定,Html.Action
助手将使用当前区域。因此,当它在您的 "main" 视图中呈现时,它将呈现:/Language/Index
。当它在您的管理视图中呈现时 .. 它将呈现:/Admin/Language/Index
.. 可能存在也可能不存在。
您想要做的是覆盖它使用的区域..以便它始终使用 "main" 区域:
@Html.Action("Index", "Language", new { area = "" }) @* Blank area .. "main" area *@
我的项目结构是:
MainProject(项目名称)
区域--->管理(包含视图、控制器等)
控制器
观看次数
我的项目中有一个区域。 现在我想使用主布局查看管理区域,主布局调用了一些 actions.when 我的项目正在执行时在 @Html.Action("Index"("Index", "Language" ) 在主布局中,找不到此视图。
我的主布局代码是:
@using Constants
@using SquishIt.Framework
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title</title>
<meta name="description" content="@ViewBag.MetaDesc" />
@RenderSection("SocialMeta", false)
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div>
@Html.Action("Index", "Language" )
</div>
.
.
</div>
</body>
我的管理区视图代码是:
@model AdminModerateViewModel
@{
ViewBag.Title = "management";
Layout = string.Concat("~/Views/Shared/", "_Layout", ".cshtml");
}
<div>
........
</div>
Html.Action
提供了如下所示的覆盖:
public static MvcHtmlString Action(
this HtmlHelper htmlHelper,
string actionName,
string controllerName,
RouteValueDictionary routeValues
)
注意最后一个参数:routeValues
。
如果未指定,Html.Action
助手将使用当前区域。因此,当它在您的 "main" 视图中呈现时,它将呈现:/Language/Index
。当它在您的管理视图中呈现时 .. 它将呈现:/Admin/Language/Index
.. 可能存在也可能不存在。
您想要做的是覆盖它使用的区域..以便它始终使用 "main" 区域:
@Html.Action("Index", "Language", new { area = "" }) @* Blank area .. "main" area *@