Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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
c#类到knockout.js的映射_C#_Javascript_Knockout.js - Fatal编程技术网

c#类到knockout.js的映射

c#类到knockout.js的映射,c#,javascript,knockout.js,C#,Javascript,Knockout.js,我想将我的类中的每个对象转换为observablearray 我的模型是这样的: public class Project { public string Soid { get; set; } public DateTime StartDate { get; set; } public DateTime? EndDate { get; set; } public string ProjectTitle { get; set;

我想将我的类中的每个对象转换为observablearray

我的模型是这样的:

public class Project
    {
        public string Soid { get; set; }
        public DateTime StartDate { get; set; }
        public DateTime? EndDate { get; set; }
        public string ProjectTitle { get; set; }

        private List<SelectedMembersForTestimonialsModel> _selectedMembersForProject;

        public List<SelectedMembersForTestimonialsModel> SelectedMembersForProject
        {
            internal set { _selectedMembersForProject = value; }
            get { return _selectedMembersForProject ?? (_selectedMembersForProject = new List<SelectedMembersForTestimonialsModel>()); }
        }
}
var RatingAndTestimonials = function () {
    //Make the self as 'this' reference
    var self = this;

    self.projects = ko.observableArray([]);

Load Data from server to self.projects
//Function to Read All Modules datas
    function GetRatingandTestimonialsData(module) {
        $.ajax({
            type: "POST",
            url: "Home.aspx/GetRatingandTestimonialsInfos",
            data: "{module : '" + module + "'}",
            dataType: "json",
            contentType: "application/json",
            success: function (response) {
                self.PageLoading = ko.observable("none");
                $.each(response.d, function (i, data) {
                    self.projects(data.Projects);
                                    });
            }

        });
    }
要将每个属性从project转换为observablearry,(特别嵌套的列表称为:SelectedMembersForProject

我使用ko.mapping编写了以下内容

var rt = new RatingAndTestimonials(); 
ko.applyBindings(ko.mapping.fromJS(rt));

但它不起作用,有人能解决我的问题吗?

虽然您还没有说到底出了什么问题,但您没有将每个项目添加到视图模型的数组中,而是将属性设置为该项目。您需要使用推送将每个项目添加到阵列中:

$.each(response.d, function (i, data) {
    self.projects.push(data.Projects);
});

对于我正在处理的屏幕,我首先将模型传递到我的.cshtml视图,因此:

@model Your.Namespace.Project
然后,在.cshtml视图的

    // serialize model to json
    var data = @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model));

    // "Project" being the name of the knockout VM
    var vm = new Project(data);
    ko.applyBindings(vm);

    // definition of project knockout VM
    function Project(data) {
        // Data
        var self = this;
        ko.mapping.fromJS(data, {}, self);
    }

现在,您的所有属性都是可观察的,并且您的列表是可观察的阵列

您在服务器端使用的是什么技术(Mvc4带控制器、ApiController、WCF、自制处理程序)?你能发布服务器响应流吗?当然,我正在使用C#webmethod,它由$ajax方法调用(图像是否回答了你的问题?)Paul,我只想使用ko.mapping将嵌套列表转换为Observable。你似乎没有调用ajax服务来获取数据,因此映射插件没有任何数据要映射。