在提交之前捕获数据条目列表

时间:2011-06-29 07:38:36

标签: javascript

我有一个这样的模型:

public class Person
{
    public string Name {get;set;}
    public List<Pet> Pets {get;set;}
}

public class Pet
{
    public string Type {get;set;}
    public string Name {get;set;}
}

我希望用户在将其提交到服务器进行保存之前,在网页上捕获所有这些信息。我想出了一个解决方案,为用户捕获的每只宠物构建一个表格行。所以我的javascript是为每个捕获的宠物在表中添加行。当用户点击“保存”按钮时,我构建了一个javascript对象:

person.name
person.pets[]

然后我将其提交给服务器。

问题是,这是方法还是有更好的方法,我不应该为每只宠物添加输入元素,并提交表格吗?

1 个答案:

答案 0 :(得分:1)

执行此操作的一种常见方法是使用客户端$ .ajax调用(jQuery),然后使用服务器端服务将数据作为JSON使用。

至少在VS 2010中,有一个用于自动创建启用ajax的WCF服务的模板。这是一个链接:

http://msdn.microsoft.com/en-us/library/bb924552.aspx

客户端脚本的基本大纲:

  $.ajax(             
  {                 
    type: "POST",                 
    contentType: "application/json; charset=utf-8",     
    url: "WcfService.svc/SomeMethod",                 
    data: JSON.stringify(params), //params is the name and pets data            
    dataType: "json",                 
    success: function (data, textStatus)        
    {
            // do something with the response if necessary
    }          

您还可以将您的课程转换为DataContracts:

 [DataContract]
 public class Person 
 {     
   [DataMember]
   public string Name {get;set;}   

   [DataMember]  
   public List<Pet> Pets {get;set;} 
 }  

 [DataContract]
 public class Pet 
 {     
   [DataMember]
   public string Type {get;set;}  

   [DataMember]    
   public string Name {get;set;} 
 }