.cshtml ファイルをビューとして直接使用することはお勧めしません。コントローラーの背後に .cshtml ファイルを配置することをお勧めします。
たとえば、HotTowel サンプルを使用して、/App/main.js を編集し、関数定義を次のように置き換えます。
define(['durandal/app',
'durandal/viewLocator',
'durandal/system',
'durandal/plugins/router',
'durandal/viewEngine',
'services/logger'],
function (app, viewLocator, system, router, viewEngine, logger) {
Durandal viewEngine への参照を追加したことに注意してください。次に、交換する必要があります
viewLocator.useConvention();
と
viewLocator.useConvention('viewmodels', '../../dynamic');
viewEngine.viewExtension = '/';
viewLocation.useConvention の最初の引数は、ビュー モデル js ファイルの場所として /Apps/viewmodels/ ディレクトリを設定しますが、ビューの場所には URL http://example.com/dynamic/を使用し、拡張子は ' です。 /'. したがって、Durandal が「shell」という名前のビューを探している場合、http://example.com/dynamic/shell/を参照します(これは、ビュー ディレクトリが viewmodels ディレクトリに対して相対的にマッピングされているため、/App/viewmodels/ ../../dynamic は単純に /dynamic を提供します)。
慣例により、この以前の URL ( http://example.com/dynamic/shell/ ) はコントローラーの DynamicController とアクション "Shell" にマップされます。
この後、次のようにコントローラー (DynamicController.cs) を追加するだけです。
// will render dynamic views for Durandal
public class DynamicController : Controller
{
public ActionResult Shell()
{
return View();
}
public ActionResult Home()
{
return View();
}
public ActionResult Nav()
{
return View();
}
public ActionResult Details()
{
return View();
}
public ActionResult Sessions()
{
return View();
}
public ActionResult Footer()
{
return View();
}
}
上記のアクションごとに .cshtml ファイルを作成します。このようにして、コントローラー、サーバー側の IoC などを使用して、SPA の動的ビューを生成できます。