Маршрутизация в Asp.net Core с использованием AngularJs

0

Я новичок в Asp.Net. Так или иначе, что я хочу достичь/сделать, я хочу контролировать маршрутизацию в Asp.net Core, используя AngularJs. Но проблема в том, что я не могу загрузить (?) Страницы, которые я хочу. Страницы не отображаются в ng-view. или я делаю что-то неправильно? Заранее спасибо.

Вот некоторые из моего кода:

_Layout.cshtml:

<body  ng-app="myApp" style="background-color:white">
<div ng-controller="Test">
<h1 style="margin-left:20px;color:darkred">Test</h1>
<input ng-model="test"/>
<p>{{tester}}</p>
<p style="color:black">{{test}}</p>
    </div>
<ul>
    <li><a href="#routeOne">Route One</a></li>
    <li><a href="#routeTwo">Route Two</a></li>

</ul>
<div>
    <p>@Model.test_name</p>
    <p>@Model.test_role</p>


</div>
<div ng-view></div>

<div class="container body-content">
    @RenderBody()


</div>
</body>

HomeController.cs:

namespace WebApplication12.controllers
 {
public class HomeController : Controller
{
    public ActionResult Index()
    {
        MysqlConnector test = new MysqlConnector();
        return View(test);
    }

  }
 }

Index.cshtml:

@{
ViewData["Title"] = "One";
}

 <p> {{tester}}  test</p>

Index1.cshtml:

 @{

   ViewData["Title"] = "Second";

 }

 <p>Second</p>

site.js:

var app = angular.module('myApp', ['ngRoute']);
app.controller('Test', function ($scope) {

    $scope.tester = "message displayed";

});

app.config(['$routeProvider', function ($routeProvider){
  $routeProvider.
     when('/routeOne', {
        template: '<p>First Page</p>',
        controller: "Test"
     })
    .when('/routeTwo', {
        templateUrl: 'Index1.cshtml',
        controller: "Test"

    })

 }]);

ps: test_name и test_role с сервера mysql работают нормально.

ps 2: Я вырезал часть скриптов в макете. поэтому скрипты работают/загружаются правильно.

  • 0
    Какой ваш текущий URL? Вы пробовали yourBaseUrl/routeOne ?
  • 0
    Я запускаю это на localhost: 60660 . Я пробовал это, но он показывает пустую страницу. Когда я нажимаю на ссылки, URL становится таким. локальный: 60660 / # # routeOne
Показать ещё 3 комментария
Теги:
asp.net-core
asp.net-core-mvc
ngroute

1 ответ

0

Ваш templateUrl в параметре $ routeProvider-Configuration для /routeTwo должен указывать на URL-адрес действия контроллера ядра ASP.NET, например "/home/index". Данный "index1.cshtml" является шаблоном Razor, который должен обрабатываться и обслуживаться базой данных ASP.NET с помощью метода управления.

Я предлагаю изменить

.when('/routeTwo', {
    templateUrl: 'Index1.cshtml',
    controller: "Test"

в

.when('/routeTwo', {
        templateUrl: '/home/index',
        controller: "Test"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню