前面已经讲过如何在WebForm中使用MVC4.0,本文主要解决“当前上下文不存在ViewBag”的问题,

在View视图实际使用过程中,如果引用不正确会提示“当前上下文不存在ViewBag”,首先需要引入“Microsoft.CSharp”类库

然后修改web.config,主要是添加“configSections”和“system.web.webPages.razor”区段

<?xml version="1.0"?> 
 
<configuration> 
  <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> 
 
  <system.web> 
    <httpHandlers> 
      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/> 
    </httpHandlers> 
 
    <!-- 
        Enabling request validation in view pages would cause validation to occur 
        after the input has already been processed by the controller. By default 
        MVC performs request validation before a controller processes the input. 
        To change this behavior apply the ValidateInputAttribute to a 
        controller or action. 
    --> 
    <pages 
        validateRequest="false" 
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
      <controls> 
        <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> 
      </controls> 
    </pages> 
  </system.web> 
 
  <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
 
    <handlers> 
      <remove name="BlockViewHandler"/> 
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> 
    </handlers> 
  </system.webServer> 
</configuration> 

 

posted on 2013-04-01 12:37  厦门海之星  阅读(5530)  评论(1编辑  收藏  举报