我有一个这样的模型:
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[]
然后我将其提交给服务器。
问题是,这是方法还是有更好的方法,我不应该为每只宠物添加输入元素,并提交表格吗?
答案 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;}
}