ビューにテーブルをレンダリングするために、Knockout.jsのチュートリアルに従おうとしています。私のコントローラーは、レコードのリストをIEnumerableタイプとして取得し、ビューに送信しています。Knockoutマッピングを機能させて、レコードをHTMLテーブルに表示しようとしています。
私のモデルは次のようになります。
public class ImportItem
{
public string LName { get; set; }
public string FName { get; set; }
public string HPhone { get; set; }
public string EMailAddress { get; set; }
public string OtherPhone { get; set; }
}
IEnumerableをビューに渡して、LNameとFNameだけを表示する単純なテーブルを取得することさえできないようです。誰かが私が見ることができるノックアウトマッピングを使用したサンプルコードを持っていますか?
以下で解決
私のビューの上部に追加しました:
@model IEnumerable<MyProject.Models.ImportItem>
@{
var jsonData = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model));
}
私のJavaScript:
$(function () {
var viewModelJSON = ko.mapping.fromJSON('@Html.Raw(jsonData)');
ko.applyBindings(viewModelJSON);
});
私のhtmlバインディング、$ dataは、名前のない配列を参照するためのキーになりました。
<table>
<thead><tr>
<th>Last Name</th>
</tr></thead>
<tbody data-bind="foreach: $data">
<tr>
<td data-bind="text: LName"></td>
</tr>
</tbody>
</table>