2012-08-27 891 views
0

我改變了服務提供者,從那以後,一旦我轉到www.greptech.co.za,我得到上述錯誤。編譯器錯誤消息:CS0103:當前上下文中不存在名稱'ViewBag'

服務提供商使用.NET 4.0,並且安裝了最新的MVC3。

還有什麼可以解決的問題?我已經使用了這個,我已經完成了上述檢查。服務提供商不知道還有什麼問題。

我還沒有改變我的Web.config文件,因爲它與我的舊服務提供商合作。

現在已經很長一段時間了。請任何人都可以幫助

這裏是我的web.config文件:

<?xml version="1.0" encoding="UTF-8"?> 
    <!-- 
     For more information on how to configure your ASP.NET application, please visit 
     http://go.microsoft.com/fwlink/?LinkId=152368 
     --> 
    <configuration> 
     <connectionStrings> 
     <add name="MySqlServer" connectionString="Datasource=431.186.904.538;Port=3306;Database=grep;uid=user;pwd='XXXX';Allow User Variables=true;check parameters=false;logging=true" providerName="MySql.Data.MySqlClient" /> 
     </connectionStrings> 

     <system.net> 
     <mailSettings> 
      <smtp deliveryMethod="Network" from="[email protected]"> 
      <network host="mail.greptech.co.za" userName="[email protected]" password="XXXX" port="25" /> 
      </smtp> 
     </mailSettings> 
     </system.net> 

     <appSettings> 
     <add key="ENV" value="PROD"/> 
     <add key="webpages:Version" value="1.0.0.0" /> 
     <add key="ClientValidationEnabled" value="true" /> 
     <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
     </appSettings> 

     <system.web> 
     <!-- <customErrors mode="On"/> --> 
     <trace enabled="true" pageOutput="false" requestLimit="40" localOnly="false" /> 

     <compilation debug="true" targetFramework="4.0"> 

      <assemblies> 
      <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      </assemblies> 
     </compilation> 

     <authentication mode="Forms"> 
      <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
     </authentication> 

     <pages> 
      <namespaces> 
      <add namespace="System.Web.Helpers" /> 
      <add namespace="System.Web.Mvc" /> 
      <add namespace="System.Web.Mvc.Ajax" /> 
      <add namespace="System.Web.Mvc.Html" /> 
      <add namespace="System.Web.Routing" /> 
      <add namespace="System.Web.WebPages" /> 
      </namespaces> 
     </pages> 
     <customErrors mode="Off"/> 
     </system.web> 

     <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <modules runAllManagedModulesForAllRequests="true" /> 
      <directoryBrowse enabled="true" /> 
      <defaultDocument> 
       <files> 
        <clear /> 
        <add value="Default.htm" /> 
        <add value="Default.asp" /> 
        <add value="index.htm" /> 
        <add value="index.html" /> 
        <add value="iisstart.htm" /> 
        <add value="default.aspx" /> 
        <add value="index.php" /> 
       </files> 
      </defaultDocument> 
       </system.webServer> 

     <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 
      </dependentAssembly> 
     </assemblyBinding> 
     </runtime> 
    </configuration> 

好了,感謝您的答覆。這裏是〜/查看/ Web.config中

<?xml version="1.0"?> 

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

     <system.net > 
     <mailSettings> 
      <smtp deliveryMethod="Network" from="[email protected]"> 
      <network host="mail.greptech.co.za" userName="[email protected]" password="XXXX" port="25" /> 
      </smtp> 
     </mailSettings> 
     </system.net> 

     <system.web.webPages.razor> 
     <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.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=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
      pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
      userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
      <controls> 
      <add assembly="System.Web.Mvc, Version=3.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> 

我結束回到原來的服務提供商

+0

這個問題很含混,沒有任何需要審查的代碼。你可以嘗試一件事:在System.web.mvc引用上將Copy Local設置爲true。另外:你還沒有測試你的移植之前,它的生活?!?!?!?!?! –

+0

它以前在舊的ISP工作..當我遷移,它給了我上面的錯誤。我應該測試它:-(在使它活着之前..我會嘗試你的建議,設置它爲真。謝謝,還有什麼我可以嘗試嗎? –

回答

0

我想我可能有一個想法看看調試輸出是怎麼回事 - 這部分看起來不正確:

Line 12: namespace ASP { 
Line 13:  using System; 
Line 14:  using System.Collections.Generic; 
Line 15:  using System.IO; 
Line 16:  using System.Linq; 
Line 17:  using System.Net; 
Line 18:  using System.Web; 
Line 19:  using System.Web.Helpers; 
Line 20:  using System.Web.Security; 
Line 21:  using System.Web.UI; 
Line 22:  using System.Web.WebPages; 
Line 23:  using System.Web.WebPages.Html; 
Line 24:  using WebMatrix.Data; 
Line 25:  using WebMatrix.WebData; 
Line 26:  
Line 27:  
Line 28:  public class _Page_index_cshtml : System.Web.WebPages.WebPage { 

首先你的頁面繼承WebPages.WebPage - 這是怎麼發生的?然後上面..注意缺乏System.Web.Mvc?這也是您因爲缺少'BeginForm'和'Partial'方法而出錯的原因,因爲它們都是System.Web.Mvc名稱空間的一部分。 這裏有一個新的MVC 3項目的產出怎麼找我:

Line 12: namespace ASP { 
Line 13:  using System; 
Line 14:  using System.Collections.Generic; 
Line 15:  using System.IO; 
Line 16:  using System.Linq; 
Line 17:  using System.Net; 
Line 18:  using System.Web; 
Line 19:  using System.Web.Helpers; 
Line 20:  using System.Web.Security; 
Line 21:  using System.Web.UI; 
Line 22:  using System.Web.WebPages; 
Line 23:  using System.Web.Mvc; 
Line 24:  using System.Web.Mvc.Ajax; 
Line 25:  using System.Web.Mvc.Html; 
Line 26:  using System.Web.Routing; 
Line 27:  
Line 28:  
Line 29:  public class _Page_Views_Home_Index_cshtml : System.Web.Mvc.WebViewPage<dynamic> { 

你上面列出的配置是完全正常的。然而,在/視圖中的配置是影響視圖的生成,我最好的猜測是有什麼問題。這是我注意到,建立或者斷開視圖輸出的比特(這裏命名空間直接反映在生成的代碼,類似Problem recognizing html helpers in asp.net mvc 3 razor):這似乎是一個好主意,如果你還可以添加

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.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> 

此時如果這不是問題,〜/ Views/Web.config。

+0

感謝您的反饋..我添加了〜Views/Web .config文件供您查看..謝謝 –

+0

我仍然得到相同的錯誤,當我將dll文件的本地副本設置爲true時,可以請協助嗎?謝謝 –

+0

不知道它是否是程序集本身。所有的好,但是,你的意見仍然編譯沒有適當的設置。必須有東西沒有設置/丟失。 PS:做了一個快速測試。從〜/視圖下的位置刪除配置文件給我完全相同的錯誤作爲你的任何機會它沒有與其他文件託管或由於某種原因無法訪問?這是我能重現你的錯誤的唯一方法。希望我能幫上忙。 –

0

完成回到原來的服務提供商

相關問題