在jQuery中访问Model对象

Pra*_*sad 1 asp.net-mvc jquery

我有一个Model,Customers我有一个list属性,PayHistory.我需要PayHistory在ASP.NET MVC(C#)应用程序中使用jQuery 将表与对象绑定.

我使用jQuery绑定表:

<table width="100%" border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td>
            <div id="PaidDate">
            </div>
        </td>
        <td>
            <div id="PaidAmt">
            </div>
        </td>
    </tr>
</table>

<script type="text/javascript" language="javascript">
    $(document).ready(function() {
      //Initialize the dynamic Value;
      _dynId = 1;
      var data= '<%= Model.PayHistory %>';
       if (data != null) {
            for (i in data) {
                var pay= data[i];
                $('#PaidDate').append('<div id="PaidDate' + _dynId  + '" style="height:20px;padding-left:10px;">' + '<label>' + pay.paidDate+ '</label>');
                $('#PaidAmt').append('<div id="PaidAmt' + _dynId  + '" style="height:20px;padding-left:10px;">' + '<label>' + pay.PaidAmount + '</label>');
                _dynId   += 1;
            }
        }
    });
</script>
Run Code Online (Sandbox Code Playgroud)

在上面的HTML中,我试图访问PayHistoryjQuery中的列表对象,但它给出了对象的类型.

如何在jQuery中访问对象以绑定表,如上面给出的HTML?

End*_*ssa 5

您需要做更多的工作才能将数据转换为JavaScript可以理解的表单.最简单的方法是将对象中的数据编码为JSON字符串,然后将其发送到data变量.

您可以手动执行此操作(通过创建执行此操作的类的方法),或者由于您使用的是ASP.NET MVC,因此可以使用Json方法.但是,这必须在Controller而不是View中完成.所以,我会将它添加到您的Model对象或通用View Data中.它可能作为Model对象的属性存在,它只对原始值调用Json方法并返回它.

C#

public string JsonPayHistory
{
    get 
    {
        return Json(PayHistory);
    }
}
Run Code Online (Sandbox Code Playgroud)

JS

var data = '<%= Model.JsonPayHistory %>';
Run Code Online (Sandbox Code Playgroud)

您将需要查看返回的字符串.它将采用JSON格式,并且必须进行评估.你可以通过添加:

data = eval(data); // usually a bad idea
Run Code Online (Sandbox Code Playgroud)

要么

data = JSON.parse(data); // may require a library if browser doesn't support it
Run Code Online (Sandbox Code Playgroud)

现在,您应该有一个类似于C#对象的对象.您可以循环它并按名称引用属性.如果您提供PayHistory对象的基本结构,我可以提供更好的示例.