【问题标题】:The name 'ViewData' does not exist in the current context当前上下文中不存在名称“ViewData”
【发布时间】:2011-10-12 17:38:09
【问题描述】:

我正在通过 MVC3 处理我的第一个应用程序,并且仍然是其中的新手:
我正在尝试通过母版页成功查看我的 ViewData[],因为它包含将在每个页面上使用的消息,但是当我尝试访问它时,它会说:

CS0103:当前上下文中不存在名称“ViewData”

var msg = ViewData["msg"] as string;
        //var msg = ViewBag.msg as string;
        if (msg != null)
        {
            Response.Write (msg);
        } else if (msg == null)
        {
            Response.Write("");
        }

我不确定是我做错了什么,还是无法通过我的 MasterPage 访问 ViewData[]。请帮忙!

【问题讨论】:

  • 顺便说一句,您不需要if 支票; Response.Write(null) 不会做任何事情。
  • 好的,但是我将如何检查 ViewData 中是否有一些消息? & 如果有,打印出来?
  • 你不需要检查。如果您打印一条不存在的消息,则什么都不会发生,
  • 好的,谢谢! :) 但我认为我仍然在使用 if,因为我在 div 中显示一条消息,只有在有消息时才会显示,否则它会隐藏.. 所以需要检查是否有消息!

标签: .net asp.net-mvc-3 master-pages viewdata viewbag


【解决方案1】:

您需要将母版页设置为继承System.Web.Mvc.ViewMasterPage

【讨论】:

  • 并停止使用 Response.Write。 :)
  • 它目前被主指令中的“myweb.Views.myweb”继承..应该替换它吗?
  • 您不应在 ASP.Net MVC 中使用 WebForms 代码隐藏文件。将其更改为<%@ Master Language="C#" Inherits="ViewMasterPage" %>
  • 好的,它刚刚开始给我这个错误:“'System.Web.Mvc.ViewMasterPage' 类型不明确:......”
  • 您可能引用了System.Web.Mvc.dll 的两个版本。删除其中一个(同时检查Web.configs)。阅读整封邮件了解更多详情。
猜你喜欢
  • 1970-01-01
  • 2022-01-09
  • 2021-10-04
  • 2018-12-04
  • 1970-01-01
  • 2013-10-02
  • 2014-04-22
  • 2017-06-17
  • 2015-09-11
相关资源
最近更新 更多