HttpContext.Current
была очень плохой идеей от Microsoft, которая, к счастью, была не перенесена в ASP.NET Core.
Вы можете получить доступ к RouteData
следующим образом:
@Url.ActionContext.RouteData.Values["Controller"]
// or
@ViewContext.RouteData.Values["Controller"]
Тем не менее, «пустой макет» звучит так, как будто вы вообще не хотите макет. Если это так, используйте это:
@{
var controller = ViewContext.RouteData.Values["Controller"].ToString();
string layout = null;
if (controller != "Empty")
{
layout = "~/Views/Shared/_Layout.cshtml";
}
Layout = layout;
}
null
здесь означает «не использовать макет».