gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:51:41 25 4
gpt4 key购买 nike

我可以在 _Layout.cshtml 中获取当前 Controller 名称和操作名称通过执行以下操作

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

但是,当我尝试获取该区域时
var area = ViewContext.RouteData.Values["area"].ToString();

它不起作用,因为该对象中仅存在 2 个键(“ Controller ”和“ Action ”)

我检查了 ViewContext.RouteData对象并且无法获取当前区域名称的值。

previous answers对于 ASP.net 的早期版本不要为我工作。

最佳答案

感谢普拉纳夫的评论! GetNormalizedRouteValue方法is now public .所以你可以调用RazorViewEngine.GetNormalizedRouteValue当您将 key 作为“区域”传递时,您可以查看区域名称中的方法。

<h2> @RazorViewEngine.GetNormalizedRouteValue(ViewContext, "area") </h2>
RazorViewEngine类属于 Microsoft.AspNetCore.Mvc.Razor命名空间。所以确保你有一个 using 语句来在你的 View 中导入它。
@using Microsoft.AspNetCore.Mvc.Razor
GetNormalizedRouteValue方法与之前版本的答案中解释的相同。您可以 see the source code这里

在 Razor View (MVC6)中,这对我完全有用。
@using Microsoft.AspNet.Routing
@{
var myAreaName = string.Empty;
object areaObj;
if (ViewContext.RouteData.Values.TryGetValue("area", out areaObj))
{
myAreaName = areaObj.ToString();
}
}

<h1>@myAreaName</h1>

关于asp.net-core - 如何在 ASP.NET Core 的 .cshtml 文件中获取当前 MVC 区域名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35602805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com