单击按钮时显示源代码

时间:2011-01-17 20:11:30

标签: c# asp.net

首先,我必须让你知道我是这个领域的新手,从教程中学习。

据说,我正在寻找一种方法,可以在单击按钮时将源代码从代码隐藏文件加载到文本框中。同样适用于aspx文件。

我正在制作这个网站,我将在哪里展示我正在做的代码示例。因此,如果我导航到myweb.com/tutorial1done.aspx,此页面将向我显示完成的教程的最终结果。当我单击显示源按钮时,它应该显示2个文本框,并将代码隐藏添加到第一个框,将aspx源添加到第二个框。

我不知道是否有可能,但我希望如此。

到目前为止我有这个:

ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DateTimeOutput.aspx.cs" Inherits="WebApplication1.DateTimeOutput" %>

<!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 runat="server">
<title></title>
<link rel="stylesheet" href="../styles/codeformatter.css" />
</head>
<body>
<form id="form1" runat="server">
<customControls:Header runat="server" heading="Date and Time Output" />
<div>
    <asp:Panel ID="Panel1" runat="server">
        <asp:TextBox ID="outputText" runat="server" Height="175px" TextMode="MultiLine" 
            Width="400px"></asp:TextBox>
    </asp:Panel>
</div>
<asp:Panel ID="Panel2" runat="server">
    <asp:Button ID="runButton" runat="server" Text="Run Code" 
        onclick="runButton_Click" Width="95px" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:Button ID="clearButton" runat="server" Text="Clear Console" 
        onclick="clearButton_Click" Width="95px" />
    <br />
    <br />
    <asp:Button ID="dt_showSource_btn" runat="server" 
        onclick="dt_showSource_btn_Click" Text="Show Source" />
</asp:Panel>
<asp:Label ID="dtLabel1" runat="server" Text="Code Behind:" Visible="False"></asp:Label>
<br />
<asp:TextBox ID="dtcb_output" runat="server" Height="175px" 
    TextMode="MultiLine" Visible="False" Width="400px"></asp:TextBox>
<br />
<br />
<asp:Label ID="dtLabel2" runat="server" Text="ASPX:" Visible="False"></asp:Label>
<br />
<asp:TextBox ID="dtaspx_output" runat="server" Height="175px" 
    TextMode="MultiLine" Visible="False" Width="400px"></asp:TextBox>
</form>
</body>
</html>

Codebehind:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class DateTimeOutput : System.Web.UI.Page
    {
    protected void output(String value)
    {
        outputText.Text += value + Environment.NewLine;
    }

    protected void runButton_Click(object sender, EventArgs e)
    {
        DateTime dt = new DateTime();
        output(dt.ToString());
        DateTime nowDt = DateTime.Now;
        output(nowDt.ToString());
    }

    protected void clearButton_Click(object sender, EventArgs e)
    {
        outputText.Text = "";
    }

    protected void dt_showSource_btn_Click(object sender, EventArgs e)
    {
        if (dtcb_output.Visible == false)
        {
            dtLabel1.Visible = true;
            dtcb_output.Visible = true;
        }
        else
        {
            dtLabel1.Visible = false;
            dtcb_output.Visible = false;
        }

        if (dtaspx_output.Visible == false)
        {
            dtLabel2.Visible = true;
            dtaspx_output.Visible = true;
        }
        else
        {
            dtLabel2.Visible = false;
            dtaspx_output.Visible = false;
        }

    }

}
}

现在不需要来源突出显示,除非它很容易做到。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您正在引用代码隐藏文件的实际代码,则表示您遇到了问题。由于文件将被编译,然后作为中间代码放置在动态链接库(.dll)中,因此您无法再访问.aspx.cs文件。唯一的方法是在deployd项目中包含文件后面的代码,并用FileStream(或其他)打开它来读取它并显示它的内容。