2017-10-04 82 views
0

我正在使用asp:Button标记的OnClick来计算一个报告,我想将其显示为div标记的innerHTML。我想使用Response.WriteLine方法来返回这个html文件。 ASP.NET webforms是否提供了捕获此响应的方法?asp:按钮如何捕获Response.WriteLine

我被迫改用JavaScript吗?我在服务器端使用C#。

+0

为什么'Response.WriteLine'?这很愚蠢。没有必要直接写回应答。只需使用提供给您的控件将生成的HTML分配给div。 – mason

+0

你有什么建议?什么导致页面刷新? –

+0

按钮点击会导致页面发起回发。如果你不想这样做,你需要了解AJAX和类似的技术。你有在使用什么平台的选择吗? Web Forms是一个古老的,古老的垃圾。如果您是第一次学习,我建议您学习[ASP.NET MVC](https://www.asp.net/mvc),或者如何将客户端框架(如Angular)与服务器端端点(如[Web API](https://www.asp.net/web-api))。 – mason

回答

0

Web窗体这样做的方法是使用控件并从后面的代码中设置其InnerHTML。这里是一个独立的例子:

<%@Page Language="C#" AutoEventWireup="true" %> 

<script runat="server">  
    protected void GenerateReport(object sender, EventArgs e) 
    { 
     var reportHTML = "<p>This is a <span style='font-weight: bold;'>report!</span></p>"; 
     ReportDiv.InnerHtml = reportHTML; 
    } 
</script> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>Test</title> 
    </head> 
    <body> 
     <form runat="server"> 
      <asp:Button runat="server" OnClick="GenerateReport" Text="Generate Report" /> 
      <div runat="server" id="ReportDiv"></div> 
     </form> 
    </body> 
</html>