我只有一个.aspx页面,其中包含一些javascript代码和一些C#代码。没有代码隐藏文件。 C#代码为:
<script language="c#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
string auth = Request.Headers["Authorization"];
label1.InnerText = auth;
return;
}
</script>
我创建了一个网页,引用了IIS下的本地网站。我正在使用管理员权限在Visual Studio 2017中运行此程序。但是,我无法在C#代码中设置断点。我刚收到以下通知
“无法在此位置插入断点。”
在设置断点时是否存在一些限制,即代码是否在单独的代码隐藏文件中不存在?
答案 0 :(得分:1)
这是因为页面在加载时会呈现,因此不是编译代码,因此您无法设置断点,因为编译器不知道该断点。
这是MSDN Page的引文:
ASP.NET Web窗体页面支持嵌入式代码块 主要是为了保持与旧版ASP的向后兼容性 技术。通常,将嵌入式代码块用于复杂 编程逻辑不是最佳实践,因为当代码是 与标记混合在页面上,可能很难调试和 保持。另外,由于该代码仅在 页面的呈现阶段,您所拥有的灵活性大大低于 代码隐藏或脚本块代码将代码范围限定到 页面处理的适当阶段。
答案 1 :(得分:0)
如果您确实需要在aspx页面上编写C#代码,则可以使用以下嵌入式代码块:
<% HttpContext context = HttpContext.Current;
string auth = Request.Headers["Authorization"];
label1.InnerText = auth; %>
在嵌入式代码块中,语法<%= expression%>用于解析表达式并将其值返回到块中,您可以在其中设置断点。
答案 2 :(得分:0)