我有一个asp.net核心1.0应用程序(MVC)+ AngularJS 1.我有一个控制器Home
,其行动Index
看起来像
[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元素上动态引导角度。
想象一下2条角度路线。第一个是默认($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
时。浏览将URL重写为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 :(得分:0)
我没有提到我使用1.5.5 angularjs。我将角度升级到最新的1.5.8。
除此之外,我删除了所有包
<user_folder>\.nuget\packages
和<user_folder>\.nuget\.tools
我在我的解决方案上执行了恢复包。
在所有这一切之后,现在一切都恢复正常并且它正在发挥作用。没有奇怪的URL编码等。
我还尝试将AngularJS版本降级到1.5.5并且我开始获取奇怪的编码网址并且它部分工作(虽然一切都很好)。
希望这对有同样问题的人有所帮助。