经过一番折腾,我想通了。以下是将另一个视图添加到 ASP.NET SPA 项目的步骤。
在 Views.Home 文件夹中创建一个新的局部视图 (_NewView.cshtml)。这是一个简单的例子。
<!-- ko with: newview -->
<div class="jumbotron">
<h1>New View</h1>
<p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS, and JavaScript.</p>
<p><a href="http://asp.net" class="btn btn-primary btn-large">Learn more »</a></p>
</div>
<!-- /ko -->
将 @Html.Partial("_NewView") 添加到 Index.cshtml 文件中。
在 Scripts.app 文件夹中为新视图创建一个视图模型 js 文件。至少您需要向 App VM 注册新视图。以下是所需的最低要求(用 CoffeeScript 编写):
NewViewModel = (app, dataModel) ->
self = this
return
# NewViewModel currently does not require data binding, so there are no visible members.
app.addViewModel
name: "NewView"
bindingMemberName: "newview"
factory: NewViewModel
在 App_Start.BundleConfig.cs 的“~/bundles/app”ScriptBundle 中包含新视图的 VM 代码
而已。如果您想在菜单中添加指向新视图的链接,只需添加
<li><a href="#" data-bind="click: navigateToNewview">New View</a></li>
到菜单列表。