Ajax 通過post提交數據到一般處理程序,后台快速獲取數據的方法


1.通過serialize()方式傳遞json數據

注意:前端html表單 name值應該為后台類中的字段名稱 例如:<input  name="S_類字段名稱" type='text'  id="S_類字段名稱" />

1.1 js

 

var x = encodeURI(jQuery("#xmfs input,select,textarea").serialize());
jQuery.ajax({
       type: "POST",
       url: "../Handler/zHandler.ashx?Action=AddRew",
       data: x,
       success: function (datad) {
             alert("提交成功!");
       },
       dataType: "json"
});
js serialize()

 

1.2 cs通過類獲取post提交的數據

L_CPROJECT project = new L_CPROJECT();
Type Pproject = project.GetType();
GetFormValue(project, Pproject);//處理附件問題

1.3 GetFormValue 方法

 

private void GetFormValue(object project, Type Pproject)
{
    foreach (string item in con.Request.Form.AllKeys)
    {
        PropertyInfo cons = Pproject.GetProperty(item.Replace("S_", ""));
        //表單內的input等的name值命名規范為S_類字段名
        if (cons != null)
        {
            var valtype = cons.PropertyType;
             //判斷convertsionType是否為nullable泛型類
              if (valtype.IsGenericType && valtype.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))  
              {
                    //如果type為nullable類,聲明一個NullableConverter類,該類提供從Nullable類到基礎基元類型的轉換  
                    System.ComponentModel.NullableConverter nullableConverter = 
new System.ComponentModel.NullableConverter(valtype);

                     //將type轉換為nullable對的基礎基元類型  
                     valtype = nullableConverter.UnderlyingType;
                }
                    string text = HttpUtility.UrlDecode(Request.Form[item].Trim());
                    cons.SetValue(project, Convert.ChangeType(text, valtype), null);
         }
     }
}
獲取傳遞值

 

2.通過JSON.stringify(data) 多條數據傳遞

注意:arr.push({ SUBID: doc.attr("su"), PURID: 12, SU: doc.val(),SU:12 })中的每個name與L_CSECTION類中的字段名稱對應

 js:JSON.stringify(arr)

var arr = new Array();
jQuery(".new").each(function (index, link) {
    var doc = jQuery(this).find(".thisid");
    arr.push({ SUBID: doc.attr("su"), PURID: 12, SU: doc.val(),SU:12 });
});
jQuery.ajax({
      type: "POST",
      url: "../Handler/zProjndler.ashx?Action=AddSUBPACKAGE",
      data: JSON.stringify(arr),
      success: function (datas) {

       },
      dataType: "json"
});
JSON.stringify(arr)

cs

var sr = new StreamReader(Request.InputStream);
var stream = sr.ReadToEnd();
List<L_CSECTION> _list = jsonHelp.getObjectByJson<L_CSECTION>(stream);
for (int i = 0; i < _list.Count; i++)
{
   //對數據進行操作
}

jsonHelp

public static class jsonHelp
{
    internal static List<T> getObjectByJson<T>(string jsonString)
    {
       // 實例化DataContractJsonSerializer對象,需要待序列化的對象類型
       DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<T>));
       //把Json傳入內存流中保存

       MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
       // 使用ReadObject方法反序列化成對象
       object ob = serializer.ReadObject(stream);
       List<T> ls = (List<T>)ob;
       return ls;
    }
         
}
將json數據轉換為object對象

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM