2016-09-01 5 views
2

次の問題を手伝ってください。私は困惑している。私はそれに2つのファイルだけで "1"と呼ばれるフォルダがあります。...(使用するディレクティブまたはアセンブリ参照がありませんか?)

<%@ 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は次のとおりです:最初のものはDemonstrationOne.aspxある

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に移動し、ファイルをクリック> [開く]> [Webサイト](Iウィザードから自動生成しないでください)、実行をクリックします。

「ASP.demonstrationone_aspxは」「DemonstrateMe」となし拡張メソッドの定義が含まれていません「DemonstrateMe」タイプ「ASP.demonstrationone_aspx」の 最初の引数を受け入れる見つけることができる(これは私のエラーメッセージを表示します私は初心者ものaspx Webフォームで「Hello World」のラベルを示すの問題を持つ(なし自動生成ウィザードだということに注意したいあなたがusingディレクティブまたはアセンブリ参照が不足している?)

を あります)。私はそれがVisualスタジオによって生成された場合にのみ動作すると思いますか?

助けてください。

+1

'DemonstrateMe'はクラスであり、メソッドではありません。 'OnClick'はメソッドを指す必要があります。 –

+0

脇に:あなたのファイルをあなたのクラス名と一致させることは明らかでしょう。あなたのハンドラは、現時点でそのクラス内のメソッドではなくクラスを指しているので、問題です。 – ManoDestra

+0

こんにちは@ManoDestraファイル名がクラス名と一致していましたが、混乱してしまったので、 "デモ"のような言葉がC#言語に含まれていないことを確認しました。 – Rookie

答えて

2

OKAY!私が間違ってやっていることを再読するのに長い時間がかかり、明らかに「ウェブアプリケーション」と「ウェブサイト」は異なるものです!誰がダンクする!だからここに解決策があります。

まず第一には、その中に次のコードでWeb.configファイルを追加します。

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5.2"/> 
    </system.web> 
</configuration> 

CodeBehindを削除し、メインの.aspxファイルにCodeFileInheritsを追加し、それぞれに必要事項を記入します。私の場合:

<%@ 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!!"; 
     } 
    } 
} 

これでうまくいくはずです。さて、新しいキーボードを購入してください。あなたの現在のキーボードには、おそらく、あなたの額であまりにも多くのボタンが壊れていることから生じる粘着性のあるキーがあります。

関連する問題