在jquerymobile + phonegap应用程序

时间:2015-06-11 03:32:23

标签: c# json pdf

我有两个应用程序,一个在C#中,另一个使用 jquery mobile,phonegap和使用Web服务;这是我在C#中使用的方法,将一些数据导出为PDF:

    public void exportToPDF(object sender, EventArgs e)
    {
        SqlConnection conn = Classes.DbManagement.getConnection();
        conn.Open();
        SqlCommand objCmd = null;
        String sql = "";
        String fileName = "";

        DataSet ds1 = new DataSet();
        SqlDataAdapter da;
        DataSet1 ds = new DataSet1();
        CrystalReport1 cr1 = new CrystalReport1();

        sql = "SELECT userId " +
                "FROM isProductReport"'";
        objCmd = new SqlCommand(sql, conn);
        objCmd.ExecuteNonQuery();

        da = new SqlDataAdapter(objCmd);

        ds1.EnforceConstraints = false;
        da.Fill(ds1, "isProductReport");

        cr1.SetDataSource(ds1);

        fileName = "reporte de inventario " + DateTime.Now.ToString("dd/MM/yyyy hmmtt");
        cr1.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, fileName);
    }

它在C#应用程序中运行良好,它允许我保存报表,我想在Web服务调用中使用相同的方法,我将使用json以下列方式使用:

        function exportToPDF()
        {   
            var userIdValue = $("#username").val();

            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: "http://localhost/Service1.svc/exportToPDF",
                data: JSON.stringify({ userId: userIdValue }),
                dataType: "json",
                success: function (data){                                                                               
                },
                error: function(result){
                    alert(result.status + ' ' + result.StatusText); 
                }
            });                     
        }

但显然,我没有得到任何东西,此时,我不知道如何继续以便能够保存PDF,我将非常感谢一些指导,非常感谢!

编辑:

这是操作合同声明:

    [WebInvoke(Method = "GET")]
    [OperationContract]
    void exportToPDF();

如果它有帮助。

1 个答案:

答案 0 :(得分:0)

如果PDF根本不是JSON文件,您希望如何使用JSON?

由于它是一个文件,您可以轻松打开此URL,浏览器将开始自行下载:

window.open('http://localhost/Service1.svc/exportToPDF'); 
// or
window.location.href = 'http://localhost/Service1.svc/exportToPDF';

但是,您的方法是使用POST方法。您需要使用GET方法以这种方式访问​​它。在使用WCF时,请将WebGetAttribute添加到Service1.svc

中的方法中
[WebGet]
public void exportToPDF()
{
   //...
}