【发布时间】:2016-06-29 08:28:23
【问题描述】:
我有以下常量定义如下:
namespace MyProject.Constants
{
public static class AppConstants
{
// View Bag / Temp Data Constants
public const string CurrentAction = "CurrentAction";
public const string CurrentController = "CurrentController";
}
}
在我的 _layout.cshtml 文件中,我将它们设置如下:
@using MyProject.Constants
@{
TempData[AppConstants.CurrentAction] = ViewContext.RouteData.GetRequiredString("action").ToLower();
TempData[AppConstants.CurrentController] = ViewContext.RouteData.GetRequiredString("controller").ToLower();
}
<!DOCTYPE html>
<html>
...
<body>
@Html.Partial("_SubNavigation")
</body>
</html>
但我无法访问 _SubNavigation.cshtml 部分视图中的 TempData:
<li><a href="@Url.Action("Index", "Home")" class="@(TempData[AppConstants.CurrentController].ToString() == "home" && TempData[AppConstants.CurrentAction].ToString() == "index" ? "active" : "")">Home</a></li>
我收到错误The name 'AppConstants' does not exist in the current context
如果我直接在部分内部添加以下 sn-p 是否有效?
@using MyProject.Constants
@{
TempData[AppConstants.CurrentAction] = ViewContext.RouteData.GetRequiredString("action").ToLower();
TempData[AppConstants.CurrentController] = ViewContext.RouteData.GetRequiredString("controller").ToLower();
}
【问题讨论】:
标签: c# asp.net-mvc razor asp.net-mvc-partialview