我试图了解淘汰赛与淘汰赛映射插件的结合 .
我有一个asp.net MVC应用程序返回一个模型(一组客户) .
我的控制器:
Public ActionResult Index()
{
List<Customer> customers = new List<Customer>{
.....initializing-code for the customerlist
};
return View(customers);
}
在我的视图中我有一个脚本如下:
<script type="text/javascript">
function ViewModel() {
var self = this;
};
var myViewModel;
$(function() {
var jsonModel = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(this.Model, new Newtonsoft.Json.Converters.IsoDateTimeConverter()))';
myViewModel = ko.mapping.fromJSON(jsonModel, {}, new ViewModel());
ko.applyBindings(myViewModel);
});
</script>
我想用foreach做一个控制流绑定......这个foreach绑定的变量名是什么 . 我试过'$ data',但这似乎不起作用 .
亲切的问候
相关观点代码:
<div class="row" data-bind="foreach: customers">
<div class="col-md-2">
<span data-bind="text: Name"></span>
</div>
<div class="col-md-2">
<span data-bind="text: FirstName"></span> <span data-bind="text: LastName"></span>
</div>
<div class="col-md-2">
<span data-bind="text: ContactStreet"></span> <span data-bind="text: ContactBuildingNumber"></span>
</div>
<div class="col-md-2">
<span data-bind="text: ContactPostalCode"></span>
</div>
<div class="col-md-2">
<span data-bind="text: ContactCity"></span>
</div>
<div class="col-md-2">
<button class="btn btn-success">Edit</button>
<button class="btn btn-danger">Delete</button>
</div>
@section scripts{
@Scripts.Render("~/bundles/knockout")
<script type="text/javascript">
function ViewModel() {
var self = this;
};
var myViewModel = {};
$(function() {
var jsonModel = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(this.Model, new Newtonsoft.Json.Converters.IsoDateTimeConverter()))';
myViewModel.customers = ko.mapping.fromJSON(jsonModel, {}, new ViewModel());
ko.applyBindings(myViewModel);
});
</script>
1 回答
就像你拥有它一样,你可以像这样绑定它
BUT ,我会这样做的
然后你可以加入你的标记
因为现在您可以向viewmodel添加更多属性,您肯定需要这些属性 .
UPDATE :Here's a working jsfiddle . 记住呼叫是
fromJS
,而不是fromJSON
.