单击ASP:Button时获取ASP:TextBox的值

时间:2018-08-23 00:55:22

标签: html asp.net postback

我知道这是一个愚蠢的问题,而且是一个简单的问题,但是我感觉我快要疯了,因为我无法完成这项工作(即使我已经做了一百万遍了)。

我的ASP.NET页中有一个文本框和一个按钮

                <asp:TextBox ID="commentTextBox" inputtype="text" runat="server" CssClass="uk-textarea"></asp:TextBox>
                <asp:Button ID="buttonComment" runat="server" CssClass="uk-button uk-button-text" text="Post Comment" OnClick="buttonComment_Click" />

这些是更大的HTML标记集的一部分,包装在a:

<form id="form1" runat="server">

单击按钮后,我将执行以下操作(获取文本框的值并将其作为“注释”发布到数据库中)

    protected void buttonComment_Click(object sender, EventArgs e)
    {
        try
        {
            //string commentText = ((TextBox)FindControl("Comment")).Text;
            string strDate = Request.Form["commentTextBox"].ToString();

            Spark.Comment comment = new Spark.Comment
            {
                CommentByEmail = Context.User.Identity.Name.ToString(),
                CommentDate = DateTime.Now,
                SparkId = sparkId,
                CommentText = strDate,
            };

            using (var client = new AmazonLambdaClient(Amazon.RegionEndpoint.APSoutheast2))
            {
                var request = new InvokeRequest
                {
                    FunctionName = ConfigurationManager.AppSettings["lambdaArnPrefix"] + "lambdaSparkCreateComment",
                    Payload = JsonConvert.SerializeObject(comment),
                    InvocationType = InvocationType.RequestResponse
                };

                var response = client.Invoke(request);
            }

            Response.Redirect($"SparkDetail?action=comment");
        }
        catch (Exception ex)
        {
            sparkCardSingle.Text = ex.ToString();
        }
    }

我尝试了所有这些变种来获取价值:

string commentText = ((TextBox)FindControl("commentTextBox")).Text

string commentText = Request.Form["commentTextBox"].ToString();

string commentText  = CommentText.Text; 

但是无论如何,我都会在发回邮件时收到此错误

System.NullReferenceException: Object reference not set to an instance of an object. at APISpark.SparkDetail.Page_Load(Object sender, EventArgs e) in C:\Users\jmatson\Source\Repos\Production-Spark-Website\APISpark\SparkDetail.aspx.cs:line 136

我不明白。我觉得我已经完成了十亿次此代码,并且可以正常工作。我不知道为什么现在不起作用。

0 个答案:

没有答案