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

时间:2015-01-05 20:28:17

标签: c# asp.net controls code-behind

我一整天都在努力。打开一个旧的Web应用程序,尝试向我的页面添加一个方法(default.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" %>

我遇到的一些症状是智能感知并没有“看到”页面中的任何控件,当我双击Designer中的按钮控件时,它会创建以下内容:

<script runat="server">

protected void ButtonShowUnderEight_Click(object sender, EventArgs e)
{

}
</script>

后面的代码以(在我所有的using语句之后)开始:

namespace HoursWorked
{
    public partial class _Default : Page
    {

有什么想法吗?

谢谢, 添

3 个答案:

答案 0 :(得分:0)

替换

<%@ 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"

P.S,你也可以删除

<%@ Import Namespace="HoursWorked" %>

答案 1 :(得分:0)

我最终回到原来的本地解决方案,而不是尝试使用我的dev和prod服务器上的那些解决方案。不知道为什么他们遇到这个问题与我原来的本地解决方案相比。

不会帮助其他人解决这个问题,但不是花更多的时间来解决这个问题......我敢肯定,如果我比较解决方案文件夹中的所有内容,可能会出现问题。

答案 2 :(得分:0)

就我而言(VS2013),基于this link的帮助是什么:

  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. 现在双击Designer中的控件,该控件现在应该在aspx中的脚本标记内弹出事件处理程序代码。

  3. 接下来,恢复您在第一步中删除的CodeBehind="yourfile.aspx.cs"

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