[英]Deserialize jQuery Serialized Form
我正在嘗試將表單輸入傳遞到WebMethod中並執行某些操作。 我使用jQuery Serilize 。
<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並將其插入數據庫中)。 由於我要執行的操作是這樣的嗎? 歡迎您提出建議,提示。
如何將序列化JS對象映射到C#實體對象? 這是好方法嗎? 還是存在更好的方法? 如果是,請給我一些信息
我建議您使用強類型。 因此,定義一個包含所有必要屬性的類:
public class MyModel
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}
然后讓您的網絡方法使用此對象:
[WebMethod()]
public static bool test(MyModel bject)
{
...
}
屬性名稱必須與您要在AJAX請求中序列化的輸入字段名稱匹配。
也許您可以嘗試以下方法:
JavaScriptSerializer JsTool = new JavaScriptSerializer();
var listOfObjs = JsTool.Deserialize<List<YourDataType>>(bject);
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.