ASP.NET MVC:在WebForm中使用MVC4.0,并完美结合Razor引擎

前面已经讲过如何在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> 

 

你可能感兴趣的:(asp.net)