Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 在Knockout和Asp.net MVC4中使用显示模块模式_Javascript_Jquery_Asp.net Mvc 4_Knockout.js_Knockout 2.0 - Fatal编程技术网

Javascript 在Knockout和Asp.net MVC4中使用显示模块模式

Javascript 在Knockout和Asp.net MVC4中使用显示模块模式,javascript,jquery,asp.net-mvc-4,knockout.js,knockout-2.0,Javascript,Jquery,Asp.net Mvc 4,Knockout.js,Knockout 2.0,我正在尝试在我的asp.NETMVC4应用程序中使用knockout。这就是我的代码 <script> var my = my || {}; //creating private namespace to avoid any conflicts other namespaces: my namespace $(document).ready(function () { ////////////////view model testing//////////

我正在尝试在我的asp.NETMVC4应用程序中使用knockout。这就是我的代码

    <script>


var my = my || {}; //creating private namespace to avoid any conflicts other namespaces: my namespace

$(document).ready(function () {



    ////////////////view model testing////////////////////////////

    // Define Main ViewModel; javascript Object Literals
    ////it is a workaround for moduler JS pattern including revealing js pattren 
    ///it also uses KnockOut. end product ViewModel; 

    function teammemberModel() {
        this.Id = ko.observable();
        this.Title = ko.observable();
        this.Name = ko.observable();
        this.Email = ko.observable();
        this.Nationality = ko.observable();
        this.Sex = ko.observable();

    };


    my.viewModel = function () {

        var teamMembers = ko.observableArray([]),

            loadTeamMembers = function (projectId) {                
                $.ajax({
                    type: "GET",
                    url: "/Project/GetTeamMembers?projectId=" + projectId,

                    success: function (response) {

                        my.viewModel.teamMembers.removeAll();
                        $.each(response.results, function (x, team) {
                            my.viewModel.teamMembers.push(new teammemberModel()
                                .Id(team.Id)
                                .Title(team.Title)
                                .Name(team.UserName)
                                .Email(team.Email)
                                .Nationality(team.Nationality)
                                .Sex(team.Sex)

                            );



                        });
                    }                        
                });
            }
        return {
            teamMembers: teamMembers,
            loadTeamMembers: loadTeamMembers
        };
    } ();

    //Applies KO bindings        
    ko.applyBindings(my.viewModel);
    my.viewModel.loadTeamMembers(6);

    ///////////////////////////////////////////////////       

    });    
    </script>

var my=my |{}//创建私有名称空间以避免任何冲突其他名称空间:我的名称空间
$(文档).ready(函数(){
////////////////视图模型测试////////////////////////////
//定义主视图模型;javascript对象文本
////这是moduler JS模式的一个变通方法,包括显示JS模式
///它还使用KnockOut.end-product-ViewModel;
函数teammemberModel(){
this.Id=ko.observable();
this.Title=ko.observable();
this.Name=ko.observable();
this.Email=ko.observable();
这个。国籍=可观察的();
this.Sex=ko.observable();
};
my.viewModel=函数(){
var teamMembers=ko.observableArray([]),
loadTeamMembers=函数(projectId){
$.ajax({
键入:“获取”,
url:“/Project/GetTeamMembers?projectId=“+projectId,
成功:功能(响应){
my.viewModel.teamMembers.removeAll();
$.each(response.results,function(x,team){
my.viewModel.teamMembers.push(新的teammemberModel()
.Id(团队Id)
.Title(团队名称)
.Name(团队名称)
.Email(team.Email)
.国籍(团队国籍)
.性别(团队性别)
);
});
}                        
});
}
返回{
团队成员:团队成员,
loadTeamMembers:loadTeamMembers
};
} ();
//应用KO绑定
应用绑定(my.viewModel);
my.viewModel.loadTeamMembers(6);
///////////////////////////////////////////////////       
});    
这是我的客户端淘汰型基本viewmodel的模块化JS实现示例。我的观点如下

    <table >    
    <thead>
    <tr>

        <th>Title</th>
        <th>Description</th>
        <th>Status</th>
        <th>Created By</th>
        <th>Created Date</th>
    </tr>
</thead>    
<tbody data-bind="foreach: teamMembers">

    <tr>                            
        <td data-bind="text: UserName"></td>
        <td data-bind="text: Email"></td>
        <td data-bind="text: Sex"></td>
        <td data-bind="text: Title"></td>
        <td data-bind="text: Nationality"></td>

    </tr>                        

      </tbody>
    </table>

标题
描述
地位
创建人
创建日期

在我的ajax调用中,我可以看到json数据被推送到teamMembers ko.observearray中。这段代码应该按照我试图遵循的教程工作,但我没有在表中显示任何数据。有人能告诉我这个代码有什么问题,为什么我的表没有在这里呈现吗。谢谢

您的客户端代码看起来不错,可能是服务器端代码有问题。检查您从服务器返回的内容,特别是在响应变量中返回的数据

我认为response.result没有任何数据,这就是为什么会出现异常。因此,请调试您的客户端代码

$.each(response.results, function (x, team) {}

我已经调试了我的js,正如我所说的,数据已经存在,并且被推到ObservalArray中,我还检查了表中填充的相同代码数据。我对其使用webapi并删除.result,因为我的结果是响应。如果您编写服务器端代码或使用jsfiddle.net进行演示,这将是一件好事