0

来週開始するインターンシップを支援するために、ASP.NET C#ガイドの作成を開始しました。私はOOに精通していますが、C#やASP.NETを使用したことはありません。このチュートリアルの最初に、IRAアカウントからの関心を分析することになっている簡単なWebページを作成しました。2つのボタンがあり、C#分離コードファイルを参照するイベントハンドラーでタグ付けされています。プログラムをコンパイルして実行した後、ブラウザから次のエラーが表示されます。

C:\ Users \ Kyle \ Documents \ Visual Studio 2010 \ WebSites \ WebSite2 \ Default.aspx(49):エラーBC30456:「btnCalculate_click」は「ASP.default_aspx」のメンバーではありません。

        AddHandler __ctrl.Click, AddressOf Me.btnCalculate_click
                                           ~~~~~~~~~~~~~~~~~~~~~

C:\ Users \ Kyle \ Documents \ Visual Studio 2010 \ WebSites \ WebSite2 \ Default.aspx(52):エラーBC30456:「btnClear_Click」は「ASP.default_aspx」のメンバーではありません。

        AddHandler __ctrl.Click, AddressOf Me.btnClear_Click
                                           ~~~~~~~~~~~~~~~~~

これが私の.aspxファイルです:

    <xmlns="http://www.w3.org/1999/xhtml">
<html>
<head runat="server">
<title>Chapter 2: Future Value</title>
<style type ="text/css">
.style1 
{
    color: #0000FF;
    font-size: x-large;
}
.style2 
{
    width:100%;
}
.style3 
{
    width: 140px;
    height: 23px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<span class="style1"><strong>401K Future Value</strong></span> <br /> <br />
<table class = "style2">
    <tr>
            <td class="style3">Montly investment</td>
            <td><asp:DropDownList ID="ddlMonthlyInvestment" runat="server" Width="106px"></asp:DropDownList></td>
        </tr>

        <tr>
            <td class="style3">Annual interest rate</td>
            <td><asp:TextBox ID="txtInterestRate" runat="server" Width="100px">6.0</asp:TextBox></td>
        </tr>

        <tr>
            <td class="style3">Number of years</td>
            <td><asp:TextBox ID="txtYears" runat="server" Width="100px">10</asp:TextBox></td>
        </tr>

        <tr>
            <td class="style3">Future Value</td>
            <td><asp:Label ID="lblFutureValue" runat="server" Font-Bold="true"></asp:Label></td>
        </tr>

        <tr>
        <td class="style3">
            <asp:Button ID="Calculate" runat="server" onclick="btnCalculate_click" Text="Calculate" />
            </td>
        <td>
            <asp:Button ID="Clear" runat="server" onclick="btnClear_Click" Text="Clear" />
            </td>                        
        </tr>
</table>


</div></form>
</body>  
</html>

そして、これが私のコードビハインドファイルです:

    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    public partial class _Default : System.Web.UI.Page
    {

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
        for (int i = 50; i <= 500; i += 50)
            ddlMonthlyInvestment.Items.Add(i.ToString());
}

protected void btnCaluculate_Click(object sender, EventArgs e)
{
    if (IsValid)
    {
        int monthlyInvestment = Convert.ToInt32(ddlMonthlyInvestment.SelectedValue);
        decimal yearlyInterestRate = Convert.ToDecimal(txtInterestRate.Text);
        int years = Convert.ToInt32(txtYears.Text);

        int months = years * 12;
        decimal monthlyInterestRate = yearlyInterestRate / 12 / 100;

        decimal futureValue = this.CalculateFutureValue(monthlyInvestment, monthlyInterestRate, months);

        lblFutureValue.Text = futureValue.ToString("c");

    }
}

protected decimal CalculateFutureValue(int monthlyInvestment, decimal monthlyInterestRate, int months)
{
    decimal futureValue = 0;
    for (int i = 0; i < months; i++)
    {
        futureValue = (futureValue + monthlyInvestment) * (1 + monthlyInterestRate);
    }
    return futureValue;
}

protected void btnClear_Click(object sender, EventArgs e)
{
    ddlMonthlyInvestment.SelectedIndex = 0;
    txtInterestRate.Text = "";
    txtYears.Text = "";
    lblFutureValue.Text = "";
}

}

誰かがこれらのエラーがポップアップする理由を教えてもらえますか?ソースからこれらの両方を再入力しました。変更が必要な設定はありますか?私はVS2010を使ったことがないので、100%慣れていません。

前もって感謝します!

4

3 に答える 3

1

@PageASPXファイルに、およびCodeFile宣言が表示されません。

あなたの質問に基づくと、次のようになります。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

また、コードビハインドモデルの仕組みは次のとおりであるため、部分クラスについて調べることをお勧めします。

http://msdn.microsoft.com/en-us/library/wa80x488(v=vs.100).aspx

于 2012-04-30T21:38:38.390 に答える
0

また、あなたは

onclick="btnCalculate_click"

しかし

protected void btnCaluculate_Click(object sender, EventArgs e)

スペルが異なります。

于 2012-04-30T21:48:31.710 に答える
0

このエラーは、aspxページまたはascxユーザーコントロールのコピー/貼り付けを実行し、元のファイルまたはコピーのクラス名(vbファイル)と参照(aspxファイル)をクリーンアップしないことが原因で発生する可能性があります。

'めちゃくちゃな'ファイルを公開している場合は、BINフォルダーを再コピーしてみてください。これは私に起こり、何かがどこかにキャッシュされました。IIS、すべてのプールを停止して開始してみました。最後に再起動すると修正されました。

ここにはロックされたスレッドがあり、見るべき多くの良いものを提供します。

http://forums.asp.net/t/1000979.aspx?BC30456+Theme+is+not+a+member+of+ASP+default_aspx+

于 2015-08-28T21:50:12.610 に答える