将 JavaScript 对象反序列化为 C# 处理程序中的泛型列表
Deserialize javascript objects to generic list in c# handler
>我在循环中创建一些javascript项
var licenseList = {};
$($licenses).each(function (index) {
var license = {};
var editedValues = {};
license.PRODUCT_KEY = $(this).parent('div.licensewrapper').data('productkey');
$(this).find('input:text').each(function (i, val) {
if ($(val).attr('data-default-value') != $(val).val() && $(val).val() > 0 && $(val).data('isValid') != false) {
var pogKey = $(val).data('product_option_group_key');
var editedValue = $(val).val();
editedValues[pogKey] = editedValue;
license.editedValues = editedValues;
}
});
//licenseList[index] = license;
//liceneList.push(license); //if array...
});
我已经注释掉了我当前的解决方案。但是我认为在 c# 中对它们进行去化时,两者中的任何一个都不等于泛型列表。在这种情况下,有什么合适的方法可以做到这一点?谢谢
创建数组
var licenseList = [];
对于您的每个许可证...
var license = {
prop1: 'p1',
prop2: 'p2'
};
licenseList.push(license);
格式化和序列化要发送到 WebMethod 的 JSON 数据
data = {
LicenseList: licenseList
};
$.ajax({
...
data: JSON.stringify(data)
...
});
在 WebMethod 中,您的方法参数必须匹配
[WebMethod]
public static string GetLicenses(List<License> LicenseList)
{
foreach(var license in LicenseList)
{
// do whatever
}
}
示例许可证类。您的属性需要与 JavaScript 中的对象匹配
public class License
{
public string Prop1 {get; set;}
public string Prop2 {get; set;}
}
希望这有帮助。
function sendToServer(licenseList)
{
var url = "controller.ashx";
var data = {};
data.SerializedObj = JSON.stringify(licenseList);
$.post(url, data, function(response){
if(response.length > 0)
{
alert(response);
}
});
}
//controller.ashx :
public void ProcessRequest (HttpContext context) {
//...
string serializedObj = context.Request.Form["SerializedObj"] ?? "";
JavaScriptSerializer js = new JavaScriptSerializer();
List<license> collection = js.Deserialize<List<license>>(serializedObj);
//...
public class license
{
public string Propertie1 {get;set;}
public string Propertie2 {get;set;}
}
Javascript 对象必须具有相同的属性:
var license = {Propertie1 : 'value1', Propertie2 : 'value2'};
相关文章:
- 在NativeScript中使用泛型参数扩展Android类
- 序列化表单数据并发布到泛型处理程序
- 有没有一种方法可以在泛型(<T>)函数/类(Typescript)中获取泛型类型的名称
- node.js 使用 function.prototype.apply 执行的泛型函数
- 如何使用闭包编译器在 javascript 中注释扩展泛型类型的类
- 将泛型函数动态关联到对象属性时的作用域.(模块模式)
- 如何在基于泛型类的选择在页面加载时显示/隐藏控件
- Typescript:注入泛型并获取 ES6 模块名称
- 泛型“New”约束等效于 TypeScript
- AngularJS 返回加载控制器的泛型函数
- 泛型函数
- 如何实例化 java 泛型类
- 定义的所有变量的打字稿泛型类型
- 有没有办法在JS文档中定义泛型类型
- 如何使用泛型处理程序或jquery从数据库中获取数据集
- 根据泛型函数中的参数动态添加ajax处理程序
- 使用JQueryAjax和ASP.NET泛型处理程序时必须采取的XSS和CSRF预防之外的安全措施
- 将 JavaScript 对象反序列化为 C# 处理程序中的泛型列表
- 给泛型事件处理程序提供参数
- 引用 Visual Studio 中第二个项目中的泛型处理程序