Knockout js ビューモデルがあり、外部テンプレートを使用して MVC 4 カミソリ (cshtml) バインド ページを取得し、最初のページをサーバー上で作成するか、Knockout を介してバインドできるようにしたいと考えています。実行時に決定します。テンプレートの名前をこのようにコントローラーに渡したい (/Templates/KnockoutTemplate?templateName='gauge') ここで、'gauge' はビューの名前 (radial.tmpl.cshtml) で、Knockout にそれをテンプレートブロック。
私のコントローラー:
public class TemplatesController : Controller
{
public TemplatesViewModel viewModel { get; set; }
public TemplatesController()
{
this.viewModel = new TemplatesViewModel { Heading = "Radial" };
}
public ActionResult KnockoutTemplate(string templateName)
{
// is this right?
return PartialView(templateName, this.viewModel);
}
}
Radial.cshtml
@model MVC4.Models.TemplatesViewModel
@{
ViewBag.Title = "Radial Template";
}
<div id="radialDashboardWidget" class="dashboardWidget" style="width: 100%">
<h4 class="bold">@Model.Heading </h4>
<!-- or I can do this, I'll decide at development time -->
<h4 class="bold" data-bind="text:heading"></h4>
</div>
メインページ
<div id="dashboardWidgets" data-bind="foreach: Widgets" class="flexible-widget">
<!-- ko template: {name: Properties.templateName } -->
<!-- /ko -->
<div class="clear" />
</div>