使用Ajax将HTML表发送到服务器上的c#代码

本文关键字:服务器 代码 Ajax HTML 使用 | 更新日期: 2023-09-27 18:02:03

我有一个充满代表表的JQuery对象的数组。数组的每个索引基本上都是一个新表。我需要做的基本上是将这些表发送到使用c#的服务器上的代码。我对AJAX甚至JSON都没有太多经验。我已经得到了我的代码来调用服务器上的一个方法,它只是返回一个字符串,说它已经到达。

我如何将这些HTML表转换成JSON格式并使用AJAX将它们发送到服务器?

这是我目前所拥有的,它只是返回一个字符串来验证我到达了服务器。

这是一个表格的示例

<table>
    <tr>
        <th>Header</th>
        <th>Header</th>
        <th>Header</th>
        <th>Header</th>
    </tr>
    <tr>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
    </tr>
    <tr>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
    </tr>
    <tr>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
    </tr>
</table>
这是我的javascript
var tables: Array<JQuery> = this.BuildTables(); // Returns the 5 tables put into an array
// Call server
$.ajax({
    type: "POST",
    //datatype: "JSON",
    contentType: "application/json; charset=utf-8",
    async: true,
    url: GetHelper().GetVirtualDirectoryUrl() + "Index/GenerateExcelReport"
}).done((data) => {
    console.log(data);
}).fail(function () {
    console.log('Failed to send');
});
这是我的c#代码
public String CreateExcelSheet()
{
    var text = "String Changed!";
    return text;
}

输出,String Changed!

我如何重复这个过程,但传入那些HTML表。最好只传递tables,因为它包含了所有这些。当它们到达服务器端代码时,我如何从方法内部读取它们?

使用Ajax将HTML表发送到服务器上的c#代码

您可以发送使用this.BuildTables()生成的JSONvar tables: Array = this.BuildTables();//返回放入数组中的5个表

// Call server
$.ajax({
    type: "POST",
    data: {tables: tables},
    contentType: "application/json; charset=utf-8",
    async: true,
    url: GetHelper().GetVirtualDirectoryUrl() + "Index/GenerateExcelReport"
}).done((data) => {
    console.log(data);
}).fail(function () {
    console.log('Failed to send');
});

注意data: {tables: tables},行。这将传递数组的json表示。

另一种选择是使用

JSON.stringify(tables)