【问题标题】:Asp.net core 1.0 and Angular 1 routing issueAsp.net core 1.0 和 Angular 1 路由问题
【发布时间】: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/&lt;app_name&gt;/UsersModule/Home/Index 时,我得到了一切正确 - 加载了角度模板和控制器,等等。

问题

但是当我浏览http://localhost/&lt;app_name&gt;/UsersModule/Home/Index#/users。浏览器将url改写为http://localhost/&lt;app_name&gt;/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


    【解决方案1】:

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

    除此之外,我还删除了所有包 &lt;user_folder&gt;\.nuget\packages&lt;user_folder&gt;\.nuget\.tools 我在我的解决方案上做了一个还原包。

    在所有这些之后,现在一切都恢复正常并且正在工作。没有奇怪的 URL 编码等。

    我还尝试将 AngularJS 版本降级到 1.5.5,然后我开始收到奇怪的编码网址,并且它部分工作(但并非一切都很好)。

    希望这对遇到同样问题的人有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多