2013-07-24 154 views
0

我创建了一个新的mvc项目。之后我添加了旧的Web表单内容。在我的旧web表单页面或配置文件中,有些东西阻止了我的项目中的路由,并且/ Home/Index无法正常工作。在我的mvc项目中路由不起作用

但我真的无法找到任何错误的东西。请帮忙。

这是我的Global.asax一部分,我没有做出以下缺省类

 AreaRegistration.RegisterAllAreas(); 

     WebApiConfig.Register(GlobalConfiguration.Configuration); 
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 

为我难过,我没有改变上述类别的任何事物的任何变化,这是我的RegisterRoutes方法内容

 public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.IgnoreRoute("{resource}.aspx/{*pathInfo}"); 

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

和我的web配置的部分

<compilation debug="true" targetFramework="4.5" defaultLanguage="c#" optimizeCompilations="true"> 
    <assemblies> 
    <add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
    <add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
    <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
    <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
    <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
    <add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
    <add assembly="System.Drawing.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
    <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="System.Web.DataVisualization.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="office, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/> 
    <add assembly="Microsoft.Vbe.Interop, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/> 

    </assemblies> 

    ... 

    <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> 

    ... 

    <modules runAllManagedModulesForAllRequests="false"> 
     <remove name="Session"/> 
     <add name="Session" type="System.Web.SessionState.SessionStateModule"/> 
     <remove name="RequestControlModule"/> 
     <add name="RequestControlModule" preCondition="managedHandler" type="RequestControlModule" /> 
     <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" /> 
    </modules> 

回答

0

尝试改变RegisterRou te方法如下:

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.MapRoute(null, 
       "{controller}/{action}", 
       new 
       { 
        controller = "Home", 
        action = "Index"  
       } 
       ); 

       routes.MapRoute(
        "Default", // Route name 
        "",  // URL with parameters 
        new { controller = "Home", action = "Index" } // Parameter defaults 
       ); 
    } 
+0

我编辑了我的问题, – brtb

+0

旁边我的方法是自动生成的VS 2012,你声称这是错误的?你的答案不起作用,但你能解释一下为什么你认为这可能是一个解决方案? – brtb

+0

请在您的HomeController类中提供您的Index方法的列表。上面的答案不是你需要的答案,我们会在我们弄明白的情况下用正确的答案替换它。它应该看起来像这样:公共类HomeController:控制器{公众的ViewResult指数(){ 返回视图(); } } –