ASP.NET内联编码基本问题

时间:2013-09-26 20:50:27

标签: c# asp.net visual-studio

我很难调试我的作业。赋值作为单个aspx页面。我相信我的困难部分是由于我无法使用断点在Visual Studios中正确调试我的aspx页面。

我的第一个问题:这可能吗?

我在网上发现的所有资源都说解决方案是创建一个单独的类文件。

在我这样做之前,我只是想确保在脚本块中没有其他方法可以使用断点。

我的下一个问题涉及内联脚本块的格式。我特别困惑的是全局变量的使用。因为它是在一个脚本标签中,有什么不同我需要注意的,比如当它们超出范围时?如果我在脚本的全局范围内声明一个ArrayList并在按钮上单击使用Add方法,那么结果是否与后面类似代码的结果相同?

这是一些简单的代码来证明我的困惑:

<script runat="server">

    ArrayList al = new ArrayList();

    protected void Button1_Click(object sender, EventArgs e)
    {
        al.Add(TextBox1.Text);
    }

</script>

4 个答案:

答案 0 :(得分:0)

在ASPX文件中调试代码绝对没有问题。我一直这样做。如果它实际上是编译的,那么你应该能够在你的代码中设置断点。你还不清楚你到底遇到了什么问题?

关于第二个问题,页面生命周期中存在“全局”变量。但请注意,页面仅在加载时才存在。页面渲染后,不再需要它。

答案 1 :(得分:0)

这是一个经常被问过很多次的问题。见

Why can't I debug my asp.net web app

Why can't I debug my asp.net web project anymore?

Why am I unable to Debug my ASP.NET website in Visual Studio?

不幸的是,由于它可能来自多个来源,因此您几乎必须解决可能的问题解决方案。

答案 2 :(得分:0)

来自KB Article 303247

ASP.NET支持两种创作页面的方法:

  • 内嵌代码
  • 代码隐藏

在线代码

内联代码是直接嵌入ASP.NET页面的代码。以下代码表示包含内联代码的示例ASP.NET页面:

<强> Myinlinecode.aspx

<%@ Language=C# %>
<HTML>
<script runat="server" language="C#">
void MyButton_OnClick(Object sender, EventArgs e)
{
  MyLabel.Text = MyTextbox.Text.ToString();
}
</script>
<body>
  <form id="MyForm" runat="server">
     <asp:textbox id="MyTextbox" text="Hello World" runat="server"></asp:textbox>
     <asp:button id="MyButton" text="Echo Input" OnClick="MyButton_OnClick" runat="server"></asp:button>
     <asp:label id="MyLabel" runat="server"></asp:label>
  </form>
</body>
</HTML>

这个例子已经完成,如果你想要/需要某些东西是全局的,那么使用的好东西就是HTML中的额外控件。

考虑MS的代码的这个修改版本:

<%@ Language=C# %>
<HTML>
<script runat="server" language="C#">
void MyButton_OnClick(Object sender, EventArgs e)
{
  MyLabel.Text = MyTextbox.Text.ToString();
  hidden1.Value = DateTime.Now.ToString();
}
void Button2_Clicked(Object sender, EventArgs e)
{
  MyLabel.Text = string.Format("MyButton was clicked at {0}.", hidden1.Value);
}
</script>
<body>
  <form id="MyForm" runat="server">
     <asp:textbox id="MyTextbox" text="Hello World" runat="server"></asp:textbox>
     <asp:button id="MyButton" text="Echo Input" OnClick="MyButton_OnClick" runat="server"></asp:button>
     <asp:label id="MyLabel" runat="server"></asp:label>
     <hr/>
     <asp:HiddenField ID="hidden1" runat="server" />
     <asp:button id="Button2" text="Button2" OnClick="Button2_Clicked" runat="server"></asp:button>
  </form>
</body>
</HTML>

请注意,asp.HiddenField用于在HTML页面上存储数据,稍后可以访问。

如果您想了解更多相关信息,请使用“aspx内联代码”进行搜索。

答案 3 :(得分:0)

如果它没有被解雇,请检查Button1是否仍然有Button1_Click事件绑定。当你继续玩代码时,你可能已经破坏了事件绑定。请检查ig事件是否仍然绑定到Button1