Asp.net核心1.0和角1个路由问题
我有一个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" });
});
我没有提到我正在使用1.5.5 angularjs。我将角度升级到最新的1.5.8。
除了这个,我删除了所有的包从 <user_folder>\.nuget\packages
和<user_folder>\.nuget\.tools
我也对我的解决办法恢复包。
毕竟,现在一切都恢复正常,它的工作。没有奇怪的URL编码等
我也尝试降级AngularJS版本到1.5.5,我开始得到奇怪的编码网址,它部分工作(并非一切都很好)。
希望这可以帮助有同样问题的人。