ASP.Net 按钮单击事件处理程序不是在代码隐藏中自动生成的,而是放置在页面上的脚本标记中

本文关键字:脚本 Net 单击 程序 按钮 代码 自动生成 ASP 隐藏 事件处理 | 更新日期: 2023-09-27 18:36:14

我整天都在为此苦苦挣扎。 打开一个旧的 Web 应用程序,尝试向我的页面添加一个方法(默认.aspx),并将我的代码隐藏在 default 中.aspx.cs该代码在页面中引用:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HoursWorked._Default" %>
<%@ Import Namespace="HoursWorked" %>

我遇到的一些症状是智能感知没有"看到"页面上的任何控件,当我在设计器中双击按钮控件时,它会创建以下内容:

<script runat="server">
protected void ButtonShowUnderEight_Click(object sender, EventArgs e)
{
}
</script>

代码隐藏的开头为(在我所有的 using 语句之后):

namespace HoursWorked
{
    public partial class _Default : Page
    {

有什么想法吗?

谢谢提姆

ASP.Net 按钮单击事件处理程序不是在代码隐藏中自动生成的,而是放置在页面上的脚本标记中

就我而言(VS2013),帮助是基于以下链接:

  1. 从第一行删除CodeBehind="yourfile.aspx.cs".aspx文件,该文件将导致将 C# 事件处理程序代码放入改为.aspx源文件。

    <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HoursWorked._Default" %>
    

    所以你只剩下:

    <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" Inherits="HoursWorked._Default" %>
    
  2. 现在
  3. 双击设计器中的控件,该控件现在应该在 aspx 的脚本标记中弹出事件处理程序代码。

  4. 接下来,还原您在第一步中删除的CodeBehind="yourfile.aspx.cs"

    <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HoursWorked._Default" %>
    
  5. 最后,双击控件,该控件现在会在 yourfile 中弹出事件处理程序代码.aspx.cs!

替换

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HoursWorked._Default" %>

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="._Default" %>

它不喜欢你继承

Inherits="HoursWorked.Default"

附言,您也可以删除

<%@ Import Namespace="HoursWorked" %>

我最终回到了我原来的本地解决方案,而不是尝试使用我的开发和生产服务器上的解决方案。 与我最初的本地解决方案相比,不知道为什么他们会遇到这个问题。

不会帮助其他有这个问题的人,而是而不是投入更多的时间来尝试解决这个问题...... 我敢肯定,如果我比较解决方案文件夹中的所有内容,可能会突出一些东西。

提姆