Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将MVC模型转换为淘汰版JS ViewModel_Javascript_Asp.net Mvc_Json_Asp.net Mvc 4_Knockout.js - Fatal编程技术网

Javascript 将MVC模型转换为淘汰版JS ViewModel

Javascript 将MVC模型转换为淘汰版JS ViewModel,javascript,asp.net-mvc,json,asp.net-mvc-4,knockout.js,Javascript,Asp.net Mvc,Json,Asp.net Mvc 4,Knockout.js,我正在尝试将我的mvc模型转换为knockout viewmodel: 模型 视图模型 帮手 看法 var模型; $(函数(){ var viewModel=newdynamicmodelloading(@Html.Raw(Model.ToJson()); 应用绑定(视图模型); }); ToJson()返回数据。但是在绑定它时,我没有得到任何错误,也没有得到任何数据。我遗漏了一些东西,但不确定是什么 答复 以下是修复方法: <div class="f_name" data-bi

我正在尝试将我的mvc模型转换为knockout viewmodel:

模型 视图模型 帮手 看法


var模型;
$(函数(){
var viewModel=newdynamicmodelloading(@Html.Raw(Model.ToJson());
应用绑定(视图模型);
});
ToJson()返回数据。但是在绑定它时,我没有得到任何错误,也没有得到任何数据。我遗漏了一些东西,但不确定是什么


答复 以下是修复方法:

<div class="f_name" data-bind="text: firstName"></div>
<div class="f_name" data-bind="text: lastName"></div>


我希望属性名与我的mvc模型相同,但Json序列化程序默认情况下会将大写的第一个字母转换为小写

这个问题一定与来自@Html.Raw(Model.ToJson())的JSON结果有关

为了稍微处理一下代码,我创建了这个小提琴,它似乎正确地映射了数据,并成功地将其绑定到视图:

以下是JavaScript代码:

var DynamicModelLoading = function (data) {
    var self = this;

    ko.mapping.fromJS(data, {}, self);
};

$(function () {
    var viewModel = new DynamicModelLoading({"testProperty":"testValue"});

    ko.applyBindings(viewModel);
});
这将成功地将传入“DynamicModelLoading()”的静态JSON绑定到视图中的HTML。以下是HTML:

<h4>Value For 'testProperty'</h4>
<span data-bind="text: testProperty"></span>
如果映射工作成功,您应该会得到类似的结果,但是会得到对象的所有属性。

var viewModel; $(函数(){ var viewModel=newdynamicmodelloading(JSON.parse('@Html.Raw(JSON.Encode(Model))); 应用绑定(视图模型);
});希望这里的东西能帮上忙没问题,希望它能帮上忙!
public static string ToJson(this object obj)
        {
            JsonSerializerSettings serializerSettings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            return JsonConvert.SerializeObject(obj, Formatting.None, serializerSettings);
        }
<script src="~/Scripts/jquery-2.1.1.min.js"></script>
<script src="~/Scripts/knockout-3.2.0.js"></script>
<script src="~/Scripts/knockout.mapping-latest.js"></script>
<script type="text/javascript">
    var viewModel;

    $(function () {
            var viewModel = new DynamicModelLoading(@Html.Raw(Model.ToJson()));            
            ko.applyBindings(viewModel);
   });
</script>

<div class="f_name" data-bind="text: FirstName"></div>
<div class="f_name" data-bind="text: LastName"></div>
<div class="f_name" data-bind="text: firstName"></div>
<div class="f_name" data-bind="text: lastName"></div>
var DynamicModelLoading = function (data) {
    var self = this;

    ko.mapping.fromJS(data, {}, self);
};

$(function () {
    var viewModel = new DynamicModelLoading({"testProperty":"testValue"});

    ko.applyBindings(viewModel);
});
<h4>Value For 'testProperty'</h4>
<span data-bind="text: testProperty"></span>
DynamicModelLoading {testProperty: function, __ko_mapping__: Object}