2012-10-16 80 views
4

我在VS 2012中創建了MVC 4 Web應用程序。 通過NuGet下載了Ext.Net 2。 在我看來的/ home/index.cshtml文件,我想鍵入:Ext.NET未與ASP.NET MVC集成4

@Html.X().ResourceManager() 

我正在以下,當我運行:

CS1061:「System.Web.Mvc.HtmlHelper '不包含'X'的定義,並且沒有找到接受'System.Web.Mvc.HtmlHelper'類型的第一個參數的擴展方法'X'(您是否缺少使用指令或程序集引用?)

這是我的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=169433 
    --> 
<configuration> 
    <configSections> 
    <section name="extnet" type="Ext.Net.GlobalConfig" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcApplication3-20121016104640;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MvcApplication3-20121016104640.mdf" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="webpages:Version" value="2.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="PreserveLoginUrl" value="true" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" /> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login" 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.Optimization" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages" /> 
     </namespaces> 
     <controls> 
     <add tagPrefix="ext" namespace="Ext.Net" assembly="Ext.Net" /> 
     </controls> 
    </pages> 
    <httpHandlers> 
     <add path="*/ext.axd" verb="*" type="Ext.Net.ResourceHandler" validate="false" /> 
    </httpHandlers> 
    <httpModules> 
     <add name="DirectRequestModule" type="Ext.Net.DirectRequestModule, Ext.Net" /> 
    </httpModules> 
    </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
     <add name="DirectRequestHandler" verb="*" path="*/ext.axd" preCondition="integratedMode" type="Ext.Net.ResourceHandler" /> 
     <add name="ExtNetHandler" path="*/ext.axd" verb="*" type="Ext.Net.ResourceHandler" /> 
    </handlers> 
    <modules> 
     <add name="DirectRequestModule" preCondition="managedHandler" type="Ext.Net.DirectRequestModule, Ext.Net" /> 
    </modules> 
    </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" /> 
     <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.5.7" /> 
     <assemblyIdentity name="Ext.Net.Utilities" publicKeyToken="2c34ac34702a3c23" /> 
     <bindingRedirect oldVersion="0.0.0.0-2.0.0" newVersion="2.0.1" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <extnet theme="Gray" /> 
</configuration> 

回答

1

您能否確認您在項目中添加了適當的Ext.Net.dll引用?

編輯:我相信你的<runtime>節點裏面的<system.webserver>是不正確的。應該是以下內容,其中每個大會定義爲單獨的<assemblyBinding>

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
      <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" /> 
      <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.5.7" /> 
     </dependentAssembly> 
     <dependentAssembly> 
      <assemblyIdentity name="Ext.Net.Utilities" publicKeyToken="2c34ac34702a3c23" /> 
      <bindingRedirect oldVersion="0.0.0.0-2.0.0" newVersion="2.0.1" /> 
     </dependentAssembly> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
      <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
      <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

我相信NuGet可能存在缺陷。我們已經看到NuGet在<dependentAssembly>上添加這些彙編配置的其他報告。

如果您對<runtime>進行上述更改,您的項目應該可以正常工作。

+0

是的,我相信我加了正確的參考。 Ext.Net 2直接來自NuGet – user1175857

+0

您的項目設置中缺少或配置錯誤。也許下面的線程可以幫助,請參閱http://forums.ext.net/showthread.php?16920&p=72510&viewfull=1#post72510 –

+0

也許應該添加以下Web.config,請參閱http://forums.ext .net/showthread.php?16920-CLOSED-2-0-MVC-3-Razor-Example&p = 81696&viewfull = 1#post81696 –

3
  1. <system.web>

    <pages> 
        <namespaces> 
        .... 
        <add namespace="Ext.Net"/> 
        <add namespace="Ext.Net.MVC"/> 
        </namespaces> 
    </pages> 
    
  2. 正確assemblyBinding在geoffrey.mcgill文章添加Ext.Net到組件中<system.web>

    <compilation debug="true" targetFramework="4.0"> 
         <assemblies> 
         .... 
          <add assembly="Ext.Net"/> 
         </assemblies> 
    </compilation> 
    
  3. 添加命名空間像

  4. 添加命名空間在web.config中n個視點文件夾(在<system.web.webPages.razor>節)

    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
        <namespaces> 
         .... 
         <add namespace="Ext.Net" /> 
         <add namespace="Ext.Net.MVC" /> 
        </namespaces> 
    </pages> 
    
  5. 在web.config中添加Ext.Net裝配在瀏覽文件夾(在<system.web>節)

    <pages ....> 
        <controls> 
         .... 
         <add assembly="Ext.Net" namespace="Ext.Net" tagPrefix="ext" /> 
        </controls> 
    </pages> 
    
+0

ext.Net.MVC的命名空間在最新版本的ext.NET中不再存在。 – Marko

0

請不要使用的NuGet獲得Ext.Net DLL。我相信Ext.Net團隊不會更新Nuget ASAP中的Ext.Net DLL。因爲我發現版本是Nuget 2.1.1.11828,它沒有Ext.Net.Mvc命名空間。但是最新發布版本是2.1.1.18233,它有Ext.Net.Mvc命名空間...