Asp.net mvc 敲除映射尝试不使用JSON响应进行映射
我是个新手,似乎根本无法得到一个简单的映射来工作。我在MVC4 C中 我的观点是这样的:Asp.net mvc 敲除映射尝试不使用JSON响应进行映射,asp.net-mvc,knockout.js,knockout-mapping-plugin,Asp.net Mvc,Knockout.js,Knockout Mapping Plugin,我是个新手,似乎根本无法得到一个简单的映射来工作。我在MVC4 C中 我的观点是这样的: @{ Layout = "~/Views/Shared/_Layout.cshtml"; ViewBag.Title = "Index"; } <h2>Simple Mapping Example</h2> The time on the server is: <span data-bind="text: ServerTime"></span&g
@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.Title = "Index";
}
<h2>Simple Mapping Example</h2>
The time on the server is: <span data-bind="text: ServerTime"></span>
and <span data-bind="text: NumberOfUsersConnected"></span> user(s) are connected.
@section Scripts
{
<script type="text/javascript">
function ViewModel() {
var self = this;
self.ServerTime = ko.observable();
self.NumberOfUsersConnected = ko.observable();
}
var vm = new ViewModel();
ko.applyBindings(vm);
$.getJSON('/Mapping/GetServerInfo', function(data) {
ko.mapping.fromJSON(data, {}, vm);
});
</script>
}
对于数据绑定,我尝试了文本和值,它们都不会导致绑定和显示任何数据
我是不是错过了一些很明显的东西
根据评论中的问题是的,这是我的布局中的内容
<script type="text/javascript" src="~/Scripts/knockout-2.2.1.js"></script>
<script type="text/javascript" src="~/Scripts/knockout.mapping-latest.js"></script>
从
$.getJSON
成功回调传递返回的数据,该数据通常是
由JSON结构定义并解析的JavaScript对象或数组
使用$.parseJSON()方法。
因此,data
变量包含一个已解析的对象,因此需要使用ko.mapping.fromJS
方法:
$.getJSON('/Mapping/GetServerInfo', function(data) {
ko.mapping.fromJS(data, {}, vm);
});
您是否在布局中引用了KO和KO.mapping?@RenderSection(“脚本”)是否在@RenderBody和脚本包含之后?更新了原始问题。谢谢你,我知道了。谢谢你的回复。
$.getJSON('/Mapping/GetServerInfo', function(data) {
ko.mapping.fromJS(data, {}, vm);
});