我知道这是一个愚蠢的问题,而且是一个简单的问题,但是我感觉我快要疯了,因为我无法完成这项工作(即使我已经做了一百万遍了)。
我的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
我不明白。我觉得我已经完成了十亿次此代码,并且可以正常工作。我不知道为什么现在不起作用。