名称ViewBag在当前上下文mvc 4中不存在

时间:2014-11-23 15:54:17

标签: c# asp.net-mvc asp.net-mvc-4

我的强类型视图存在问题。我尝试了一切可能,并阅读了很多关于web.config相关的内容。我找不到问题了。以下是视图。

@model IEnumerable<RoomsForRent.Domain.Entities.Room>

@{
    ViewBag.Title = "Home";
}

我的域实体RoomsForRent.Domain.Entities.Room显示未知元素。 ViewBag,@ model显示不存在。来自我的观点的web.Config。

<configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>

请问我有什么遗失的吗?我最近删除并重新启动项目,但显示相同的错误。我很困惑。

2 个答案:

答案 0 :(得分:3)

有同样的问题。项目内部的信息在参考dll文件时已经过时。做出这些改变。

1)在主web.config

<appSettings>
    <add key="webpages:Version" **value="1.0.0.0"**/> --> value="2.0.0.0"
</appSettings>

2)Inside View web.config将所有Version值更改为当前的MVC版本

<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, ....
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, ....
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, ...>
  <controls>
<add assembly="System.Web.Mvc, Version=4.0.0.0.,... />

    

另外,为了让项目获得更改必须重新启动它。重启后一切正常。

希望它有所帮助。

答案 1 :(得分:0)

我首先检查./Views/Web.config

中是否有Web.config文件