【发布时间】:2017-01-27 08:12:52
【问题描述】:
我有一个 asp.net core 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 core 之前我没有任何问题。
我还将复制粘贴我的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" });
});
【问题讨论】:
标签: angularjs asp.net-core asp.net-core-mvc