我正在尝试将表单输入传递到一个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();
}
我尝试使用JavascriptSerializer类,但是没有成功。 现在我该如何使用这个对象? 我想用这种方式来更简单地使用jQuery AJAX(例如将表单输入传递给Web服务并将其插入到数据库中)。由于我要做的操作是这样的,所以我想这样做是正确的吧? 欢迎您的建议和提示。
更新: 我该如何将序列化后的JS对象映射到我的C#实体对象? 这种方式是否可行?还有更好的方法吗?如果有,请给我一些信息。