请帮我解决以下问题。我很难过。我有一个名为“one”的文件夹,里面只有2个文件。第一个是DemonstrationOne.aspx:
<%@ Page Language="C#" Title="Demo" CodeBehind="DemonstrationOne.aspx.cs" AutoEventWireup="true" Async="true" %>
<head runat="server">
<title><%: Title %></title>
</head>
<body>
<form id="sayHello" runat="server">
<div>
<asp:Button ID="doSomething" OnClick="DemonstrateMe" Text="Show Label" runat="server"></asp:Button>
<asp:PlaceHolder runat="server" ID="showLiteral" Visible="false">
<p><asp:Literal ID="HelloWorldLabel" runat="server"></asp:Literal></p></asp:PlaceHolder>
</div>
</form>
</body>
第二个当然是DemonstrationOne.aspx.cs:
using System;
using System.Web.UI;
namespace OneDemonstration
{
public partial class DemonstrateMe
{
protected global::System.Web.UI.WebControls.Literal HelloWorldLabel;
protected global::System.Web.UI.WebControls.PlaceHolder showLiteral;
}
public partial class DemonstrateMe : Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
public void sHowHelloWorldLabel(object sender, EventArgs e)
{
showLiteral.Visible = true;
HelloWorldLabel.Text = "Hello World!";
}
}
}
我转到visual studio并单击File&gt;打开&gt; Web站点(我不从向导自动生成它)并单击运行。这给了我错误信息:
'ASP.demonstrationone_aspx'不包含'DemonstrateMe'的定义,也没有扩展方法'DemonstrateMe'接受a 可以找到类型'ASP.demonstrationone_aspx'的第一个参数(是 你错过了使用指令或程序集引用?)
我想请注意,我是初学者,甚至在aspx web表单中显示“Hello World”标签(没有自动生成的向导)也存在问题。我认为它只有在Visual Studio生成时才有效吗?
请帮忙。
答案 0 :(得分:2)
OKAY!我花了很长时间重新阅读我做错了什么,显然是#34; web application&#34;和#34;网站&#34;是不同的东西!哇哇哇哇!所以这就是解决方案。
首先添加一个Web.config文件,其中包含以下代码:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5.2"/>
</system.web>
</configuration>
删除CodeBehind
并在主.aspx文件中添加CodeFile
和Inherits
并分别填写。就我而言:
<%@ Page Language="C#" Title="Demo" CodeFile="DemonstrationOne.aspx.cs" Inherits="DemonstrationOne.Demo" AutoEventWireup="true" Async="true" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title><%: Title %></title>
</head>
<body>
<form id="sayHello" runat="server">
<asp:Button runat="server" OnClick="ShowLabel" Text="Show Label" /><br/>
<asp:PlaceHolder runat="server" ID="showLiteral" Visible="false">
<p><asp:Literal ID="HelloWorldLabel" runat="server"></asp:Literal></p>
</asp:PlaceHolder>
</form>
</body>
</html>
最后但并非最不重要的是添加一些using
指令并删除多余的变量声明。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace DemonstrationOne
{
public partial class Demo : Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void ShowLabel(object sender, EventArgs e)
{
showLiteral.Visible = true;
HelloWorldLabel.Text = "Work damnitt aarrgghh!!";
}
}
}
那应该有用。现在,去买一个新的键盘。你的当前键盘可能有额外的按钮,因为额头上的按钮太多了。