我很难调试我的作业。赋值作为单个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>
答案 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)
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