我关注模块和路线配置:
var app = angular.module("ApplicationMainModule", ["ngRoute"]);
app.config([
"$routeProvider", "$locationProvider", function($routeProvider, $locationProvider) {
$routeProvider.when("/showStudents",
{
templateUrl: "main/showStudents"
});
$routeProvider.otherwise(
{
redirectTo: "/"
});
$locationProvider.html5Mode(true).hashPrefix("!");
}
]);
我的控制器就是这个:
public class MainController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult ShowStudents()
{
return View();
}
}
但是重定向不起作用......出现这个:
有什么建议吗?
答案 0 :(得分:0)
角度路线是"#"之后的部分。在URL中(例如/ main#/ showStudents),所以当你请求/ showStudents时,你仍然在路由的MVC端,并且它正在寻找一个名为ShowStudentsController的控制器。
如果您希望默认路由将您发送到Main / ShowStudents,则需要更改MVC端的路由。您可能有类似以下的路线设置:
routes.MapRoute(
"Default",
"{controller}/{action}",
new { controller = "Home", action = "Index" }
);
只需将默认控制器和操作更改为Main
和ShowStudents
。
答案 1 :(得分:0)
使用$locationProvider
时,您需要在标记的某处设置base
标记,如下所示:<base href="/">
。
或者您也可以尝试localhost:PORT/#!/showStudents
,它应该可以使用。