前幾天看到同事傳遞ListBox所有option到後端,方法是自組html string,後端接收到再反向重組成其他格式(例如SelectListItem),前後端都要大費不少行數去轉換資料~
後來piggy改採JavaScriptSerializer,輕輕鬆鬆就達到相同效果!寫法如下:
1.前端將ListBox內所有option組成JSON formate data
data以javascript的Array組合
function OK() { var result = new Array(); $("#myListBox1 option").each(function () { var item = { Value: $(this).val(), Text: $(this).text() }; result.push(item); }); var json = JSON.stringify(result);
$.ajax({ url: '@Url.Action("MyAction")', type: 'POST', data: { json: json } });}
2.後端接收資料以JavaScriptSerializer處理
public void MyAction(string json){ JavaScriptSerializer jss = new JavaScriptSerializer(); List< selectlistitem> myList = new List< selectlistitem>(); myList = jss.Deserialize< List< selectlistitem>>(json);}
沒有留言:
張貼留言