Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们可以访问服务器端C#asp.net上的JavaScript对象吗_Javascript_Asp.net_C# 4.0_Client Side_Serverside Javascript - Fatal编程技术网

我们可以访问服务器端C#asp.net上的JavaScript对象吗

我们可以访问服务器端C#asp.net上的JavaScript对象吗,javascript,asp.net,c#-4.0,client-side,serverside-javascript,Javascript,Asp.net,C# 4.0,Client Side,Serverside Javascript,在我的Asp.net web应用程序中,我必须生成pdf,之前我使用itextsharp(服务器端/付费服务)完成此任务,现在我发现jspdf可以在客户端完成,而且它是开源的 下面是生成pdf的示例代码 var doc = new jsPDF(); doc.text(20, 20, 'Hello world!'); doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.'); doc.addPage

在我的Asp.net web应用程序中,我必须生成
pdf
,之前我使用itextsharp(服务器端/付费服务)完成此任务,现在我发现jspdf可以在客户端完成,而且它是开源的

下面是生成pdf的示例代码

  var doc = new jsPDF();
  doc.text(20, 20, 'Hello world!');
  doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
  doc.addPage();
  doc.text(20, 20, 'Do you like that?');
  doc.save('Test.pdf');

对于实际工作,我需要通过应用一些逻辑(服务器端编码)来获取数据,因此我想知道我是否可以访问服务器端的doc,即(c#)或任何其他方法?

您不能访问
doc
对象(jsPDF对象)。您可以做的是,客户端通过Web服务或某些rest api向服务器请求它需要的数据,或者如果您需要的是pdf签名,客户端可以通过某种方式(通过Web服务或某些rest api)将pdf发送到服务器,然后服务器可以发回pdf。。。但这将使使用客户端pdf生成变得毫无用处

还有一些其他选项:如果您让生成PDF的按钮往返到服务器(然后在往返之后启动PDF的生成),那么服务器可以在页面中插入一些额外的数据,因此

<asp:Button ID="btnPdf" runat="server" Text="Generate PDF" OnClick="btnPdf_Click" />

and in btnPdf_Click:

ClientScriptManager.RegisterStartupScript(this.GetType(), "PdfKey", "GeneratePdf();", true);

and in the Javascript:

function GeneratePdf()
{
    // If it's a string, it's better that you escape the content of <%= %>
    // for example with HttpUtility.JavaScriptStringEncode in ASP.NET 4.0
    var serverData = <%= SomeNetVariableFilledByBtnPdf_Click %>;
    // generate the pdf
}

然后在btnPdf_中单击:
ClientScriptManager.RegisterStartupScript(this.GetType(),“PdfKey”,“GeneratePdf();”,true);
在Javascript中:
函数GeneratePdf()
{
//如果它是一个字符串,最好转义
//例如,在ASP.NET 4.0中使用HttpUtility.JavaScriptStringEncode
var serverData=;
//生成pdf
}

@Juhana:谢谢,但是没有一个答案是正确的,它也被标记为
asp.net mvc
,我的答案是简单的asp.net c#无论服务器端技术是什么,原理都是完全一样的。所有答案都不被接受并不意味着它们是不正确的。感谢您的及时回复,我现在的理解是,我必须调用ajax请求并获取响应中的数据,并将其附加到我的
doc
变量中。由于它是一个开放源码,我正在尝试重新进行一些rndit@Satindersingh是的,但是你没有传递
doc
变量。谢谢你编辑的答案给了我一个好主意