1

このコードは、18ページと19ページのダミーに関する本asp.netのオールインワンリファレンスからの抜粋です。これに伴う問題は、コンパイルされないことです。コンパイラは、txtFirst、txtSecond、およびlblAnswerが現在のコンテキストで見つからないと言います。私はこの分野で新しいです、誰かが私を助けてくれませんか?

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

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0
Transitional//EN" “http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Simple Calculator</title>
</head>
<body>
    <form id="form2" runat="server">
        <div>
            <h1>The Simple Calculator</h1>
            First number:
            <asp:TextBox ID="txtFirst" runat="server" />
            <br />
            <br />
            Second number:
            <asp:TextBox ID="txtSecond" runat="server" />
            <br />
            <br />
            <asp:Button ID="btnAdd" runat="server"
                OnClick="btnAdd_Click" Text="Add" />
            <br />
            <br />
            The answer is:
            <asp:Label ID="lblAnswer" runat="server" />
        </div>
    </form>
</body>
</html>



using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace WebApplication2
{
    public partial class _Default : System.Web.UI.Page
    {

        protected void btnAdd_Click(object sender,EventArgs e)
        {
            decimal a = decimal.Parse(txtFirst.Text);
            decimal b = decimal.Parse(txtSecond.Text);
            decimal c = a + b;
            lblAnswer.Text = c.ToString();
        }
    }
}
4

5 に答える 5

1

代わりにこのバージョンを試してください-私はそれをテストしました、そしてそれは動作します:

ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" 
    Inherits="Test.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h1>The Simple Calculator</h1>
            First number:
            <asp:TextBox ID="txtFirst" runat="server" />
            <br />
            <br />
            Second number:
            <asp:TextBox ID="txtSecond" runat="server" />
            <br />
            <br />
            <asp:Button ID="btnAdd" runat="server"
                OnClick="btnAdd_Click" Text="Add" />
            <br />
            <br />
            The answer is:
            <asp:Label ID="lblAnswer" runat="server" />
    </div>
    </form>
</body>
</html>

コードビハインド:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


namespace Test
{
    public partial class Default : System.Web.UI.Page
    {
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            decimal a = decimal.Parse(txtFirst.Text);
            decimal b = decimal.Parse(txtSecond.Text);
            decimal c = a + b;
            lblAnswer.Text = c.ToString();
        }
    }
}
于 2012-10-07T06:40:41.033 に答える
0

別の.csファイルを使用したくない場合は、aspxページでスクリプトタグを使用する必要があります。

<%@ Page Language="C#">

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0
Transitional//EN" “http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">

<script runat="server">
    protected void btnAdd_Click(object sender,EventArgs e)
    {
        decimal a = decimal.Parse(txtFirst.Text);
        decimal b = decimal.Parse(txtSecond.Text);
        decimal c = a + b;
        lblAnswer.Text = c.ToString();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Simple Calculator</title>
</head>
<body>
    <form id="form2" runat="server">
        <div>
            <h1>The Simple Calculator</h1>
            First number:
            <asp:TextBox ID="txtFirst" runat="server" />
            <br />
            <br />
            Second number:
            <asp:TextBox ID="txtSecond" runat="server" />
            <br />
            <br />
            <asp:Button ID="btnAdd" runat="server"
                OnClick="btnAdd_Click" Text="Add" />
            <br />
            <br />
            The answer is:
            <asp:Label ID="lblAnswer" runat="server" />
        </div>
    </form>
</body>
</html>
于 2012-10-07T06:33:14.137 に答える
0

2つの変更を加える

  1. aspxページで、に変更しますInherits="WebApplication2.Default"
  2. コードビハインドで、クラス名をDefaultの代わりにに変更します_Default

次に、ソリューションを再構築します。

もう1つの理由は、コピーアンドペーストの問題で、デザイナーファイルを台無しにすることがあります。コントロールを削除して、手動で再度追加してみてください。

于 2012-10-07T06:40:31.693 に答える
0

Visual Studioのソリューションエクスプローラーでc#コードをコードビハインドページに配置し、Default.aspx.csを見つけてコピーする必要があります

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace WebApplication2
{
    public partial class _Default : System.Web.UI.Page
    {

        protected void btnAdd_Click(object sender,EventArgs e)
        {
            decimal a = decimal.Parse(txtFirst.Text);
            decimal b = decimal.Parse(txtSecond.Text);
            decimal c = a + b;
            lblAnswer.Text = c.ToString();
        }
    }
}

ファイルにこれがお役に立てば幸いです

于 2012-10-07T06:25:31.653 に答える
0

WebサイトまたはWebアプリケーションを作成していますか?後者の場合は、Default.aspx.csファイルを削除(または最初にバックアップしたい場合は削除/名前変更)してみてください。次に、ソリューションエクスプローラーでDefault.aspxファイルを右クリックし、[Webアプリケーションに変換]を選択します。

于 2012-10-07T06:43:12.127 に答える