2016-09-19 60 views
0

我有一个asp.net核心1.0应用程序(MVC)+ AngularJS 1.我有一个控制器Home与动作Index看上去像该Asp.net核心1.0和角1个路由问题

[Route("UsersModule/[controller]/[action]")] 
public class HomeController : UsersModuleControllerBase, IWebFrameModuleController 
{ 
    public IActionResult Index() 
    { 
     return View(); 
    } 
} 

UsersModule/Home/Index视图看起来像这样:

... 

<div id="usersModule"> 
    <div ng-view></div> 
</div> 

... 

我动态引导该div元素的角度。

想象一下两条角度路线。第一个是默认的($routeProvider.otherwise路由)之一。

//1 
"templateUrl": "Modules/UsersModule/app/users/pages/users.html", 
"controller": "usersModule.UsersCtrl" 

//2 
"url": "/users", 
"templateUrl": "Modules/UsersModule/app/users/pages/users.html", 
"controller": "usersModule.UsersCtrl" 

所以,当我浏览http://localhost/<app_name>/UsersModule/Home/Index我得到的一切权利 - 角模板和控制器装等

问题

但是,当我浏览http://localhost/<app_name>/UsersModule/Home/Index#/users。浏览网址重写为http://localhost/<app_name>/UsersModule/Home/Index#!#%2Fusers并没有任何反应,没有js错误,没有提出请求等。

这个字符的转义是新东西,我想这可能是我没有加载的原因问题。在asp.net核心之前我没有任何问题。

我会复制粘贴我Startup.cs文件的一部分,以及:

ConfigureServices我有

var mvcBuilder = services 
       .AddMvc() 
       .AddJsonOptions(options => 
       { 
        options.SerializerSettings.DateParseHandling = Newtonsoft.Json.DateParseHandling.None; 
        options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 
       }) 
       .AddMvcOptions(options => 
       { 
        options.Filters.Add(new GlobalExceptionHandlerFilter(log4netLogger)); 
       }); 

Configure方法:

app.UseStaticFiles(); 

app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller}/{action}/{id?}", 
       defaults: new { controller = "Home", action = "Main" }); 
     }); 

回答

0

我没有提到我正在使用1.5.5 angularjs。我将角度升级到最新的1.5.8。

除了这个,我删除了所有的包从 <user_folder>\.nuget\packages<user_folder>\.nuget\.tools我也对我的解决办法恢复包。

毕竟,现在一切都恢复正常,它的工作。没有奇怪的URL编码等

我也尝试降级AngularJS版本到1.5.5,我开始得到奇怪的编码网址,它部分工作(并非一切都很好)。

希望这可以帮助有同样问题的人。