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
{
有什么想法吗?
谢谢提姆
就我而言(VS2013),帮助是基于以下链接:
-
从第一行删除
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" %>
现在 双击设计器中的控件,该控件现在应该在 aspx 的脚本标记中弹出事件处理程序代码。
接下来,还原您在第一步中删除的
CodeBehind="yourfile.aspx.cs"
。<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HoursWorked._Default" %>
最后,双击控件,该控件现在会在 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" %>
我最终回到了我原来的本地解决方案,而不是尝试使用我的开发和生产服务器上的解决方案。 与我最初的本地解决方案相比,不知道为什么他们会遇到这个问题。
不会帮助其他有这个问题的人,而是而不是投入更多的时间来尝试解决这个问题...... 我敢肯定,如果我比较解决方案文件夹中的所有内容,可能会突出一些东西。
提姆