gpt4 book ai didi

c# - 反序列化 jQuery 序列化表单

转载 作者:太空狗 更新时间:2023-10-29 23:10:45 26 4
gpt4 key购买 nike

我正在尝试将表单输入传递到 WebMethod 并做一些事情。我用了jQuery Serialize .

<script type="text/javascript">
$.fn.serializeNoViewState = function () {
return this.find("input,textarea,select,hidden")
.not("[type=hidden][name^=__]")
.serialize();
}

$(function () {
$("#Button1").click(function (e) {
var res = $("#myform").serializeNoViewState();
var jsonText = JSON.stringify({ bject: res });
$.ajax({
type: "POST",
url: "Default.aspx/Test",
data: jsonText,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// alert("asd");


},
error: AjaxFailed
});
});
});
function AjaxFailed(result) {
alert("Failed");
}
</script>

在目标 WebMethod 中,我想反序列化我传递的那个对象。

[WebMethod()]
public static bool test(string bject)
{
JavaScriptSerializer JsTool = new JavaScriptSerializer();

}

我尝试使用 Javascriptserilizer 类。但我没有成功。现在我该如何使用这个对象?我想使用这种方式来更简单地使用 jQuery AJAX(例如,将表单输入传递给 WebService 并将其插入数据库)。由于我想做的 Action 是这样的吗?欢迎您的建议、提示。

更新:

如何将序列化的 JS 对象映射到我的 C# 实体对象?这种方式好吗?或者有更好的方法存在?如果是,请给我一些信息

最佳答案

我建议您使用强类型。因此,定义一个包含所有必要属性的类:

public class MyModel
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}

然后让您的网络方法获取此对象:

[WebMethod()]
public static bool test(MyModel bject)
{
...
}

属性的名称必须与您在 AJAX 请求中序列化的输入字段名称匹配。

关于c# - 反序列化 jQuery 序列化表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5587402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com