我正在尝试利用 KnockoutJS 和 MVC 4 在表格ActionLink
的第一列中显示带有定义的表格。显示数据本身非常简单,我没有任何问题。我遇到的问题是在ActionLink
's 的生成中。
我已经查看了Use MVC helpers inside jquery.tmpl templates,但是那里的解决方案不使用敲除模板并且将 Url 插入模型对象是不可行的(将使用用于创建视图模型的应用程序域模型对象在整个应用程序中广泛使用)。
表定义:
<table>
<tbody data-bind="template: { name: 'dmuTableDetail', foreach: tables() }"></tbody>
</table>
(tables
是一个可观察的数组,因此是括号)。
淘汰赛模板定义:
<script id="dmuTableDetail" type="text/html">
<tr>
<td>@Html.ActionLink("Details", "Details", "DMUTableCategory", new { @Id = ??? } )</td>
<td data-bind="text:TableId"></td>
<td data-bind="text:TableName"></td>
</tr>
</script>
视图模型定义:
var PageViewModel = function () {
self = this;
self.tables = ko.observableArray([]);
self.readItems = function () {
self.tables(jQuery.parseJSON('[{"TableId":1001, "TableName":"Table#1"},{"TableId":1002, "TableName":"Table#2"}]'));
}
}
$(document).ready(function () {
vm = new PageViewModel();
self.readItems('');
ko.applyBindings(vm);
});
(实际代码执行 Ajax 调用来检索数据,但上面的代码也演示了该问题)。
无论我用什么替换???
,我都无法获得TableId
要插入到 href 中的字段的值。
任何帮助将不胜感激。
谢谢你。