Asp.net mvc 淘汰:foreach不使用asp.net mvc
我知道这可能很容易,但不知何故,我无法为击倒绑定实现foreach。代码如下:Asp.net mvc 淘汰:foreach不使用asp.net mvc,asp.net-mvc,knockout.js,knockout-2.0,knockout-mvc,Asp.net Mvc,Knockout.js,Knockout 2.0,Knockout Mvc,我知道这可能很容易,但不知何故,我无法为击倒绑定实现foreach。代码如下: @{ Layout = "~/Views/Shared/_Layout.cshtml"; } @section scripts { <script type="text/javascript"> ko.applyBindings({ people: [ { firstName:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@section scripts
{
<script type="text/javascript">
ko.applyBindings({
people: [
{ firstName: 'Bert', lastName: 'Bertington' },
{ firstName: 'Charles', lastName: 'Charlesforth' },
{ firstName: 'Denise', lastName: 'Dentiste' }
]
});
</script>
}
<div>
<table>
<thead>
<tr><th>First name</th><th>Last name</th></tr>
</thead>
<tbody data-bind="foreach: people">
<tr>
<td data-bind="text: firstName"></td>
<td data-bind="text: lastName"></td>
</tr>
</tbody>
</table>
</div>
@{
Layout=“~/Views/Shared/_Layout.cshtml”;
}
@节脚本
{
ko.applyBindings({
人民:[
{名字:'Bert',姓氏:'Bertington'},
{姓:'Charles',姓:'Charlesforth'},
{姓:“丹尼斯”,姓:“牙医”}
]
});
}
姓
呈现的HTML如下所示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> - My ASP.NET Application</title>
<link href="/Content/bootstrap.css" rel="stylesheet"/>
<link href="/Content/site.css" rel="stylesheet"/>
<script src="/Scripts/modernizr-2.6.2.js"></script>
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Application name</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li><a href="/Home/About">About</a></li>
<li><a href="/Home/Contact">Contact</a></li>
</ul>
</div>
</div>
</div>
<div class="container body-content">
<div>
<table>
<thead>
<tr><th>First name</th><th>Last name</th></tr>
</thead>
<tbody data-bind="foreach: people">
<tr>
<td data-bind="text: firstName"></td>
<td data-bind="text: lastName"></td>
</tr>
</tbody>
</table>
</div>
<hr />
<footer>
<p>© 2014 - My ASP.NET Application</p>
</footer>
</div>
<script src="/Scripts/jquery-1.10.2.js"></script>
<script src="/Scripts/bootstrap.js"></script>
<script src="/Scripts/respond.js"></script>
<script src="/Scripts/knockout.debug.js"></script>
<script src="/Scripts/knockout.mapping-latest.debug.js"></script>
<script src="/Scripts/knockout.js"></script>
<script src="/Scripts/knockout.mapping-latest.js"></script>
<script type="text/javascript">
ko.applyBindings({
people: [
{ firstName: 'Bert', lastName: 'Bertington' },
{ firstName: 'Charles', lastName: 'Charlesforth' },
{ firstName: 'Denise', lastName: 'Dentiste' }
]
});
</script>
</body>
</html>
-我的ASP.NET应用程序
姓
&抄袭;2014年-我的ASP.NET应用程序
ko.applyBindings({
人民:[
{名字:'Bert',姓氏:'Bertington'},
{姓:'Charles',姓:'Charlesforth'},
{姓:“丹尼斯”,姓:“牙医”}
]
});
问题是foreach不能像代码中实现的那样工作。我得到的错误是(使用敲除上下文进行调试):
ExtensionError:TypeError消息:“Object.getOwnPropertyNames已调用
在非对象上“堆栈:(…)获取堆栈:函数(){[本机代码]}”
设置堆栈:函数(){[本机代码]}
proto:错误信息:“请选择包含ko数据的dom节点。”
未捕获类型错误:未定义不是函数
我已经尝试了一段时间,但没有成功。
谢谢
所以我解决了它
问题在于淘汰2.0有一行代码:
var elems=jQuery['clean']([html])代码>
但是我使用的jQuery1.10不推荐使用clean方法。
所以我把我的淘汰赛升级到3.0并且成功了
感谢@Boaz回答这个问题为什么要包括knockout.js
和knockout.mapping.js
两次?你已经包括knockout两次了。一次在布局中,一次在视图中。从@部分脚本中删除
@nemesv-我从视图中删除了脚本,但仍然得到相同的错误。@haim770-我已经更新了代码,但问题仍然存在