0

Home page Page1 link clickI am using AngularJS with my ASP.Net MVC application and I am using angular routing but it is not working.

The angular routes are defined as:

var app = angular.module("webApp",['ngRoute']);
app.config(function($routeProvider){
    $routeProvider.when(
        "/",{
            templateUrl: "home/dashboard",
            controller: "webCtrl"
        })
        .when(
            "/page1",{
                templateUrl: "home/contact",
                controller: "page1Ctrl"
            })
        .otherwise({
                templateUrl: "home/contact",
                controller: "page1Ctrl"
        });
});

The navigation links are displayed on index.cshtml as given below:

<body ng-app="webApp">
    <a href="#/">Home</a>
    <a href="#page1">Page1</a>
    <div ng-view></div>
</body>

It displays dashboard when launched but doesn't display contact page when second link is clicked. Also, it displays strange URLs. On the homepage it dislays http://localhost:58193/#!/ and when I click on page1 link URL gets changed to http://localhost:58193/#!/#%2Fpage1.Please let me know if I am mistaking anything.

3
  • add screen shot of that you see on the browser along with console errors if any Commented Jan 7, 2017 at 19:26
  • Added screenshot. No error displayed in console. Commented Jan 7, 2017 at 19:44
  • update your asp.net controller , complete code of angular routes. Commented Jan 7, 2017 at 20:02

1 Answer 1

1

have you tried to do like this?

var app = angular.module("webApp",['ngRoute']);
app.config(function($routeProvider){
    $routeProvider.when(
        "/",{
            templateUrl: "/home/dashboard",
            controller: "webCtrl"
        })
        .when(
            "/page1",{
                templateUrl: "/home/contact",
                controller: "page1Ctrl"
            });

  $routeProvider.otherwise({ redirectTo: "/page1" });


  $locationProvider.hashPrefix("!");
});

then:

<body ng-app="webApp">

    <a ng-href="#!page1">Page1</a>
    <div ng-view></div>
</body>

and maybe put in your index-html in your section this:

 <meta name="fragment" content="!">
   <base href="/">
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks Federico! It worked when I changed anchor tag's href to !#page1. However I still wonder why it is showing strange URLs in the browser like localhost:58193/#!/(home page) and (localhost:58193/#!/page1) for page1.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.