1

データベースに数値を送信するための基本的な ASP.NET フォーム (Visual Studio 2010 を使用) を作成しようとしています。これは ASP.NET を使用するための非常に初期の試みであるため、最初は非常に単純に記述し、現在は残りの機能を追加しようとしています。もともと、すべてインライン コードでした。コード ビハインド ページを使用するように切り替えようとしていますが、コード ビハインド ファイル内からテキスト ボックスの名前を解決できません。いくつかのチュートリアルに従ってこれらのページを作成し、これを修正するために他のいくつかのソースを調べましたが、これまでに見たすべてのことは、コードビハインド用にすべて設定したことを示しているようですが、機能しません. VS はコンパイル中にエラーを表示し、現在のコンテキストにテキストボックス名が存在しないことを示します。テキストボックスへのすべての参照を削除すると、ページが機能し、ボタン イベントが発生します。protected TextBox XcoordTextbox;(ASP.NET 1.0 の場合と同じように) しかし、実行時エラーが発生するCS0102: The type 'ManualEntry.default_aspx' already contains a definition for 'XcoordTextbox' 以下は、私のコードの重要な部分です。これが機能しない理由を説明できますか?

ASPXファイル

<%@ Page    Language="C#" CodeFile="default.aspx.cs" Inherits="ManualEntry.default_aspx" AutoEventWireup="true" %>
<!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"></head>
<body>
    <form id="HtmlForm" runat="server">
        <div>
            X Coord&nbsp;
            <asp:TextBox ID="XcoordTextbox" runat="server"></asp:TextBox>
            <br />
            Y Coord&nbsp;
            <asp:TextBox ID="YcoordTextbox" runat="server"></asp:TextBox>
            <asp:Button ID="SubmitButton" runat="server" onclick="SubmitButton_Click" Text="Submit" />
        </div>
    </form>
</body>
</html>

コードビハインド ファイル

using System;
using System.Web.UI;

namespace ManualEntry
{
    public partial class default_aspx : Page
    {
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            var Xcoord = XcoordTextbox.Text;
            var Ycoord = YcoordTextbox.Text;
            //More Code Here
        }
    }
}
4

8 に答える 8

1

Webサイトの一時ファイルに移動しMicrosfot.NET[.NET version]\Temporary ASP.NET Files.て削除します。

例:.net 4.0

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

CodeFileディレクティブを使用する場合、コンパイルされたファイルは一時ASP.NETファイルに移動します

また、ソリューションからbinフォルダーとobjectフォルダーを削除し、Webアプリケーションを再構築します。

編集

default.aspx.designer.csは次のようになります。このページに手動でコントロールを追加しないでください。

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated. 
// </auto-generated>
//------------------------------------------------------------------------------

namespace ManualEntry {


    public partial class default_aspx {

        /// <summary>
        /// Head1 control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.HtmlControls.HtmlHead Head1;

        /// <summary>
        /// HtmlForm control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.HtmlControls.HtmlForm HtmlForm;

        /// <summary>
        /// XcoordTextbox control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.WebControls.TextBox XcoordTextbox;

        /// <summary>
        /// YcoordTextbox control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.WebControls.TextBox YcoordTextbox;

        /// <summary>
        /// SubmitButton control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.WebControls.Button SubmitButton;
    }
}
于 2012-05-15T17:53:53.417 に答える
1

私は時々この問題を抱えています。私は通常次のことをします:

  1. default.aspx.designer.csに移動します。
  2. 名前空間とクラス名が正しいことを確認してください。
  3. default_aspxクラス内のすべてを削除します。
  4. default.aspx.designer.csを保存して閉じます。
  5. default.aspxに変更(スペースなどを追加)します。
  6. プロジェクトを再コンパイルします。

命名規則かもしれません。に変更default_aspxしてみてくださいdefault_aspx1default_aspx.NETで使用されているのを見てきました。
また、私の.NET 4.0では、デフォルトで.CodeBehindの代わりに使用されますCodeFileこれは、 .NET1.1を除くすべてのユースケースのようです。CodeFileとCodeBehindも参照してください。

他のすべてが失敗した場合は、最初からページを再作成してみてください。

于 2012-05-15T18:23:39.583 に答える
0

.aspx ファイルに移動し、<%@............%> のようなヘッダーを再確認します。.cs ファイルのようなコード ビハインド ファイル名へのリンクがあるはずです... ...

この 1 をチェックアウトします....:)

{<%@ Page Language="C#" AutoEventWireup="true" **CodeBehind="Home.aspx.cs"** Inherits="MyCompany.Home" MasterPageFile="~/Site1.Master"%>}
于 2012-12-19T21:52:15.063 に答える
0

asp の codefile タグは、クラス名と同じでなければなりません。実際のクラス名のようなものを試してください。HelloWord.aspxか何か。

于 2012-05-15T18:10:13.690 に答える
0

Inherits="ManualEntry.default"代わりに継承を変更してみてくださいInherits="ManualEntry.default_aspx"

于 2012-05-15T18:14:27.397 に答える
0

あなたのCodeFile="default.aspx.cs"発言は間違っている

于 2012-05-15T17:06:41.440 に答える
0

それは次のようなものでなければなりません

CodeFile="default_aspx.aspx.cs" Inherits="default_aspx"
于 2012-05-15T17:10:35.383 に答える
0

使用する

CodeBehind="default.aspx.cs"
于 2012-05-15T17:14:27.087 に答える