2013-12-16 25 views
2

我不想安裝asp.net-mvc3-dlls和asp.net-mvc3-vs-tool,因爲我的遠程服務器沒有asp.net-mvc-dlls。如何通過asp.net-webform項目模板創建一個asp.net-mvc3項目(不要安裝asp.net-mvc3-dlls和asp.net-mvc3-vs-tool)?

我只有現在,我已經創建了一個asp.net web項目在Visual Studio 2010

asp.net Web窗體項目模板。我已經將這些DLL下載到項目/ Bin文件夾中:

Microsoft.Web.Infrastructure.dll 
System.Web.Helpers.dll 
System.Web.Mvc.dll 
System.Web.Razor.dll 
System.Web.WebPages.Deployment.dll 
System.Web.WebPages.Razor.dll 
System.Web.WebPages.dll 
... 

下一步是什麼?

回答

1

我已經在asp.net「網站項目」中成功實施了MVC4,但MVC3看起來應該沒什麼區別。我會給你一個TODO的概述。

1.manually更新的web.config依賴和編譯

這裏是MVC4組件的配置必須更換公鑰標記爲版本3或只是谷歌的MVC3 web.config文件和合併到現有的一個。

<system.web> 
    <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=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     </assemblies> 
    </compilation> 
    .... 

也註冊.NET ISAPI處理程序和運行時組件

<system.webServer> 
    <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"/> 
    </handlers> 
    </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"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 

2.register缺省路由global.aspx Application_Start()

RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    RouteTable.Routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{*id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional} 
    ); 

因爲你沒有VS你不能更新t編譯剃刀查看引擎。只使用經典*.aspx查看

0

既然你「不想安裝......因爲我的遠程服務器沒有asp.net-mvc-dlls」, 重新創建並確保你的web項目使用webform。

如果這些dll仍然出現在這個新創建的webform項目的bin中,讓它們成爲,然後上傳它們,將它們視爲helper/additional .net dll。