2014-12-23 3 views
1

У меня проблема с маршрутизацией внутри приложения ASP.NET. Когда я перемещаю свой angularJS вне ASP.NET MVC, он отлично работает (на XAMPP), но когда я запускаю его внутри Visual Studio 2013, моя страница индекса пуста. Я действительно не знаю, где проблема ... Кто-нибудь знает, где проблема?ASP.NET с angularJS не загружает шаблон (пустая страница без ошибок)

Вот код, который я использую:

angularJS сценарий маршрутизации:

var app = angular.module('contactsManager', ['ngRoute']); 
app.config(function ($routeProvider) { 
    $routeProvider 
     .when('/contacts', 
      { 
       controller: 'ContactsController', 
       templateUrl: 'templates/contacts.html' 
      }) 
     .when('/add-contact', 
      { 
       controller: 'ContactAddController', 
       templateUrl: 'templates/addContact.html' 
      }) 
     .when('/edit-contact/:contactId', 
      { 
       controller: 'ContactEditController', 
       templateUrl: 'templates/editContact.html' 
      }) 
     .when('/display-contact/:contactId', 
      { 
       controller: 'ContactDetailsController', 
       templateUrl: 'templates/displayContact.html' 
      }) 
     .otherwise({ redirectTo: 'templates/contacts' }); 
}); 

ASP.NET Главная Контроллер:

public class HomeController : Controller 
    { 
     public ActionResult Index() 
     { 
      return View(); 
     } 

     public ActionResult Templates() 
     { 
      return PartialView(); 

     } 

     public ActionResult Contact() 
     { 
      ViewBag.Message = "Your contact page."; 

      return View(); 
     } 
    } 

ASP.NET Route Config:

public class RouteConfig 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute("templates", "templates/{action}/{name}", 
      new { controller = "Home", action = "Templates", name = "" } 
      ); 
      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
     } 
    } 
+0

Как вы развертываете приложение? Вы запускаете его из IIS Express? Какой у него URL? Также вам необходимо синхронизировать конфигурацию маршрутизации в угловом и ASP .Net. – oryol

+0

Я запускаю его на сервере IIS по умолчанию, который поставляется с ASP.NET Visual Studio 2013. Я не знаю, где проблема. Как синхронизировать конфигурацию маршрутизации с угловым и asp.net? @oryol – jureispro

ответ

2

На стороне клиента e вы загружаете шаблоны из URL-адресов, например, шаблонов/{something} .html. Но на стороне сервера ваша маршрутизация настраивается как шаблоны/{action}/{name}. Как вы видите, у него нет суффикса .html и есть еще одна часть: {name}. Также у вас нет параметров имени в ваших действиях. Вам это действительно нужно? Я предлагаю вам попробовать шаблоны/{action} .html шаблон маршрутизации на стороне сервера.

+0

Ваше предложение хорошо сработало для меня. Спасибо за помощь – jureispro

Смежные вопросы