【发布时间】:2016-12-19 04:43:20
【问题描述】:
我正在构建一个 AngularJS 应用程序,但在构建第二个视图时我的 URL 有问题:
我的 appContact.js 看起来像这样:
(function () {
"use strict";
var app = angular.module("appContacts", ["simpleControls", "ngRoute"])
.config(function ($routeProvider, $locationProvider) {
$routeProvider.when("/", {
controller: "contactsController",
controllerAs: "vm",
templateUrl: "/views/contactsView.html"
});
$routeProvider.when("/details/:firstName", {
controller: "contactsDetailsController",
controllerAs: "vm",
templateUrl: "/views/detailsView.html"
});
$routeProvider.otherwise({ redirectTo: "/"});
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
});
})();
在我的 HTML 中有这个链接:
<a asp-controller="Contact" asp-action="Details" ng-href="#/details/{{contact.firstName}}" >{{ contact.firstName}}</a>
当我将鼠标悬停在浏览器中时,我会看到正确的建议链接,例如:
**http://localhost:8000/#/details/Matthew**
但是当我单击链接导航到新页面时,URL 更改为
**http://localhost:8000/#%2Fdetails%2FMatthew**
通过 %2 更改“/”会使应用程序失败并显示一个空白页面。
您知道这是为什么以及如何解决此问题吗?
我已经阅读过她的类似帖子,但似乎没有一个有效,因为在编码的 URL 到达浏览器之前我无法访问它并且错误就在那里。
谢谢
拉斐尔
【问题讨论】:
-
它可以在没有哈希的情况下工作
-
@MMhunter:是的,我读过它,并在我的解决方案中尝试过,但没有奏效。
-
@tsadkanyitbarek: 不管有没有它都不起作用#我测试了这两种解决方案都没有成功
-
@RafaelMunoz 您可以在后端代码中解码 URL 或整个 URL 的参数。使用 HttpUtility.UrlEncode("URL") 。
标签: javascript asp.net angularjs routing