要在MZetko的答案擴大,這裏是您可以使用jQuery和Json.Net使用的方法。
首先,您需要設置一種將js數組發送到您的c#代碼的方法。你可以使用像這樣的東西:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
var items = [["Q458", "", "100", "85"], ["Q459", "TS", "90", "65"], ["Q460", "", "80", "15"]];
sendToDb(items);
function sendToDb(inArr) {
var inString = JSON.stringify(inArr);
$.ajax({
url: "/Handlers/some-generic-handler.ashx",
dataType: 'json',
type: 'post',
data: { myVar: inString },
success: function (data) {
if (data.success == true) {
alert("Here's the first element in the array: " + data.firstElement)
alert(data.message);
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
</script>
現在,你需要建立一個處理程序,將回答ajax請求。這個頁面將使用Json.Net。該代碼將是這個樣子:
public class some_generic_handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string myVar = "";
if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.Form["myVar"])) { myVar = System.Web.HttpContext.Current.Request.Form["myVar"].Trim(); }
var myArr = JsonConvert.DeserializeObject<List<List<string>>>(myVar);
string firstElement = myArr[0][0];
string response = String.Format(@"{{ ""success"" : true, ""message"" : ""Cool! We're done."", ""firstElement"" : ""{0}"" }}", firstElement);
context.Response.ContentType = "application/json";
context.Response.Write(response);
}
public bool IsReusable
{
get
{
return false;
}
}
}
一定要通過PM安裝Json.Net>安裝,包裝Newtonsoft.Json,然後包括如下參考:
using Newtonsoft.Json;
本演示將轉換將js數組轉換爲字符串,將其發送到您的處理程序頁面,處理程序頁面將該字符串反序列化爲ac#數組,將數組中的第一個元素髮送回初始頁面,然後初始頁面將警告第一個元素。在您的應用程序中,您可以使用處理程序頁面將數據插入到數據庫表中。
這不是2D嗎?二維數組看起來像這樣var x = [[1,2,3],[4,5,6]] –
我的格式並不完整。我修好了。 – Josh
您是否嘗試過將此字段作爲字符串傳遞給隱藏字段,並在後面的代碼中使用它 –