我翻过了大量的帖子,似乎无法弄清楚我做错了什么。我有一个Bootstrap导航的主要布局页面。我正在尝试创建一个学生miniSPA。
我有一个嵌套在Layout中的Index.cshtml页面,我正在尝试加载我的List.html局部视图。它正好加载到Index.cshtml,但拒绝加载部分ng-view。我觉得我只是错过了一些简单的东西,但无法弄明白。
我正在使用_Layout.cshtml:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Dashboard</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
<script type="text/javascript" src="~/Scripts/angular.js"></script>
<script type="text/javascript" src="~/Scripts/angular-route.js"></script>
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Home</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Students", "Index", "Students")</li>
</ul>
</div>
</div>
</div>
<div class="container body-content">
@RenderBody()
<hr />
<footer>
<p>© @DateTime.Now.Year - My ASP.NET Application</p>
</footer>
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>
我的Index.cshtml
@{ViewBag.Title = "Index";}
<html>
<head>
<script type="text/javascript" src="~/Scripts/app/app.js"></script>
<script src="~/Scripts/app/StudentFactory.js"></script>
<script src="~/Scripts/app/StudentCrudController.js"></script>
<title></title>
</head>
<body ng-app="StudentDashboardModule">
<div ng-view=""></div>
</body>
</html>
我的app.js:
var app = angular.module("StudentDashboardModule", ["ngRoute"]);
app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$routeProvider
.when("/Student", { templateUrl: "/List", controller: 'StudentCrudController' });
$routeProvider.otherwise({redirectTo: '/'});
$locationProvider.html5Mode(true);
}]);
最后,我的StudentController:
public class StudentController : Controller
{
// GET: Index
public ActionResult Index()
{
return View();
}
public PartialViewResult List()
{
return PartialView("List");
}
}
答案 0 :(得分:1)
据我所知,你错过了一件事。我已经创建了一个示例JSFiddle演示访问它。据我说 在templateUrl中,您需要提供完整的路径,如 -
/ControllerName/List
以下是JSFiddle上的示例演示 -