如何在ASP.NET Core中的.cshtml文件中获取当前的MVC区域名称

时间:2016-02-24 12:54:25

标签: asp.net-core asp.net-core-mvc

我可以通过执行以下操作获取_Layout.cshtml中的当前控制器名称和操作名称

var controller = ViewContext.RouteData.Values["controller"].ToString();
var action = ViewContext.RouteData.Values["action"].ToString();

然而,当我尝试获得该区域时

var area = ViewContext.RouteData.Values["area"].ToString();

它不起作用,因为该对象中只存在2个键("控制器"和"动作")

我检查了ViewContext.RouteData对象,但无法获取当前Area名称的值。

以前版本ASP.net的{​​{3}}对我不起作用。

1 个答案:

答案 0 :(得分:11)

感谢Pranav的评论! [-1.00000, 1.00000, 123.000,-23.0000] 方法is now public。因此,当您将密钥作为“区域”传递时,可以在视图中将GetNormalizedRouteValue方法调用为区域名称。

RazorViewEngine.GetNormalizedRouteValue

<h2> @RazorViewEngine.GetNormalizedRouteValue(ViewContext, "area") </h2> 类属于RazorViewEngine命名空间。因此,请确保在视图中输入using语句。

Microsoft.AspNetCore.Mvc.Razor

@using Microsoft.AspNetCore.Mvc.Razor 方法的做法与之前版本的答案中所述相同。你可以see the source code在这里

这对我来说非常适合剃刀(MVC6)。

GetNormalizedRouteValue