1

現在、ユーザーが情報を入力できるページを作成しており、送信時にこの情報をテキスト ファイルに保存する必要がありますが、ID が設定されていても未定義のように見えるため、テキスト ボックスを取得できないようです。その上で、誰かが私が間違っていることを説明してもらえますか? 私の btnSave メソッドで正しく動作しているようです。

バックエンド C#:

    public partial class Green_FreeShipping : System.Web.UI.Page
{
    private static readonly string FILE_PATH = "~/TextFiles/Notes.txt";

    private void GetNote()
    {
        using (TextReader tr = new StreamReader(MapPath(FILE_PATH)))
        {
            txtNote.Text = tr.ReadToEnd();
        }
    }

    private void SaveNote()
    {
        using (TextWriter tw = new StreamWriter(MapPath(FILE_PATH)))
        {
            tw.Write(txtNote.Text);
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            this.GetNote();
        }
    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        this.SaveNote();
        this.GetNote();
    }
}

ASP.NET コード:

<%@ Page Language="C#" MasterPageFile="~/admin/masters/admin.master" autoeventwireup="true" inherits="TextBox_ReadWriteToTextFile" Title="Green & Free shipping amounts" codefile="~/admin/bespoke/Green-FreeShipping.aspx.cs"%>

<%@ Register TagPrefix="web" Assembly="website.Web" Namespace="website.Web" %>
<%@ Register TagPrefix="sales" Assembly="website.site.Web" Namespace="website.site.Web.Sales" %>
<%@ Register TagPrefix="ecom" Namespace="website.site.Web" Assembly="website.site.Web" %>
<asp:Content ID="TitleContent" ContentPlaceHolderID="TitlePlaceHolder" runat="Server">
    <title>Shopfront - Green and Free shipping amounts</title>
</asp:Content>

<asp:content id="Content1" contentplaceholderid="ContentPlaceHolder1" runat="Server">
    <div style="margin-bottom: 20px;">
    <asp:textbox id="txtNote" runat="server" rows="5" textmode="MultiLine" width="200px" />
    </div>
    <asp:button id="btnSave" runat="server" onclick="btnSave_Click" text="Save" />
</asp:content>
4

1 に答える 1