繁体   English   中英

部分视图错误中的ASP MVC TempData值

[英]ASP MVC TempData value in partial view error

我定义了以下常量,如下所示:

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

如果我直接在部分内容中添加以下代码段,那么它可以工作吗?

@using MyProject.Constants
@{
    TempData[AppConstants.CurrentAction] = ViewContext.RouteData.GetRequiredString("action").ToLower();
    TempData[AppConstants.CurrentController] = ViewContext.RouteData.GetRequiredString("controller").ToLower();
 }

我收到错误名称“ AppConstants”在当前上下文中不存在

没有引述的摘要,部分视图是否以

@using MyProject.Constants

在引用该名称空间中名称的每个视图中以及您需要的任何其他名称空间中,都需要这样做。 如果需要命名空间的视图占很大比例,请考虑将其添加到Views文件夹中web.config文件的全局命名空间列表中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM