我有一个模板通过foreach: viewModel.foos
呈现另一个模板。在这个模板上,我想做这样的事情:@Html.RouteLink("View", "Foo", new { id = fooId, text = fooName })
。是视图模型的fooId
和fooName
属性。
答案 0 :(得分:0)
我已将此添加到我的模板中:
<a data-bind="attr: { href: Url }">View</a>
这是我的Foo对象:
public class Foo : FooBase {
public long FooId { get; set; }
public string FooName { get; set; }
public string Url {
get {
return string.Format("/foo/{0}/{1}", FooId, FooName
}
}
}
缺点:
专业人士:
答案 1 :(得分:-1)
这不会回答问题,但我会将其保留在此处,因为它显示了如何为更多SPA这样的approuch做到这一点。
如果您希望将导航移至客户端,请查看Durandal或我的轻量级SPA引擎 https://github.com/AndersMalmgren/Knockout.Bootstrap.Demo
问题更新前的旧答案
你必须从你的模型中做到这一点(这是一件好事,因为它不应该在视图中完成)
让您的子视图模型将参数作为构造函数参数
MyViewModel = function() {
this.subView = ko.observable();
};
MyViewModel.prototype = {
loadSubView: function() {
this.subView(new SubViewModel(this.params));
}
};
编辑:提示测试此lib以进行模板化 http://jsfiddle.net/hwTup/