我在ASP.NET应用程序内部路由有问题。当我在ASP.NET MVC之外移动我的angularJS时,它运行正常(在XAMPP上),但是当我在Visual Studio 2013中运行它时,我的索引页面是空白的。我真的不知道问题出在哪里......有人知道问题出在哪里吗?
以下是我正在使用的代码:
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 Home Controller:
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路由配置:
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 :(得分:2)
在客户端,您可以从诸如templates / {something} .html之类的网址加载模板。但在服务器端,您的路由配置为templates / {action} / {name}。如你所见,它没有.html后缀,还有一个部分:{name}。此外,您的行动中也没有名称参数。你真的需要它吗?我建议你在服务器端尝试模板/ {action} .html路由模板。