gpt4 book ai didi

c# - 使用 jquery 调用带有 void 返回类型的方法后面的代码

转载 作者:行者123 更新时间:2023-12-02 17:50:06 25 4
gpt4 key购买 nike

嗨,我正在尝试使用 jquery 调用代码隐藏方法。但该方法不应返回任何值。我创建了网络方法并调用它。我的方法是这样的

$.ajax({
type: "post",
contentType: "application/json;charset=utf-8",
dataType: "json",
url: "Model/Services/Information.asmx/TestingExport",
data: JSON.stringify(empno),
success: function (resp) {
if (resp.ok) {
$('#ExportEmpInfo').empty();
$('#ExportEmpInfo').append('<p><b>' + 'Data Has been Exported to Excel successfully ' + '</b></p>');
}
else {

$('#ExportEmpInfo').empty();
$('#ExportEmpInfo').append('<p><b>' + 'Exporting to Excel Failed' + '</b></p>');

}


},
error: function (jqXHR, textStatus, errorThrown) {
alert('TextStatus:' + textStatus + ' errorThrown: ' + errorThrown);
}
})

但是测试导出方法会调用其他方法,最终会调用将数据导出为 Excel 格式的方法。在 final方法中有部分代码用于将数据导出到excel

response.Clear();
response.ClearContent();
response.Charset = "";
response.ContentType = "application/vnd.ms-excel";

我猜这与 Json 中提到的 reponse.ContentType 发生冲突,并抛出“ParseError 对象错误”。这是抛出错误。请帮助我如何调用一个不返回任何值的函数。如果返回类型是必要的,那么我可以返回任何值,但如何处理由response.ContentType抛出的错误

我的导出到 Excel 功能是

public static void ExportToExcel(HttpResponse response, DataSet ds)
{
try
{
response.Clear();
response.ClearContent();
response.Charset = "";
response.ContentType = "application/vnd.ms-excel";

DataGrid dg = new DataGrid();

for (int i = 0; i < ds.Tables.Count; i++)
{

StringWriter stringWriter = new StringWriter();

HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(stringWriter);

stringWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(stringWriter);
dg.DataSource = ds.Tables[i];
dg.DataBind();
dg.RenderControl(htmlWriter);
response.Write(stringWriter.ToString());
}
response.Flush();
response.Close();
response.Write("");

}

该控件正在检查所有这些代码,没有任何错误,但它不会生成 Excel 工作表,因为它是通过普通代码隐藏方法调用时生成的,而不是从 Web 方法调用时生成的。

最佳答案

正确的解决方案应该是删除设置响应(如果不需要响应)的代码。但是,如果这是不可能的(我假设这里没有使用“最终类”),那么这一行

dataType: "json"

告诉 jQuery 它应该期待 JSON 格式的响应。然而它收到了不同的东西并且无法解析它,抛出错误。只需删除此行即可。

关于c# - 使用 jquery 调用带有 void 返回类型的方法后面的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21439925/

25 4 0
文章推荐: javascript - jQuery 中的 onchange 事件
文章推荐: javascript - 未捕获的类型错误 : Object # has no method 'apply' error