我正在C#中創建一個ASP.NET頁面來添加/修改細節,然後將這些細節保存在MySQL數據庫中。爲此,我創建了一個主頁面「Main.Master」,一個網頁內容表單「modify.aspx」及其後面的代碼。 「Main.Master」的代碼如下所示。 Master包含表單標籤聲明。C#.NET表單提交無法獲取表單元素的新值/修改值
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Main.master.cs" Inherits="WebApplication.Main" %>
<!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">
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="mainmasterform" method="post" runat="server">
<div id="container">
<div id="maincontent">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</div>
</form>
</body>
</html>
「modify.aspx」的代碼如下所示。只有表單元素出現在這個頁面中。
<%@ Page Language="C#" MasterPageFile="~/Main.Master" AutoEventWireup="true" CodeBehind="modify.aspx.cs" Inherits="WebApplication.modify" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<table align="center">
<tr>
<td><label for="ownfname">First Name</label></td>
<td><asp:TextBox id="ownfname" runat="server" TextMode="SingleLine"/></td>
</tr>
<tr>
<td><label for="ownlname">Last Name</label></td>
<td><asp:TextBox id="ownlname" runat="server" TextMode="SingleLine"/></td>
</tr>
<tr>
<td colspan="2">
<asp:Button ID="submitowner" runat="server" Text="Submit" onclick="modifyDetails" />
</td>
</tr>
</table>
</asp:Content>
開「submitowner」按鈕的點擊提交「modify.aspx」發送給控制器的方法「modifyDetails」存在於隱藏文件「modify.aspx.cs」的代碼。 「modifyDetails」代碼如下。
protected void modifyDetails(object sender, EventArgs e) {
string cmdstr = "UPDATE owners SET first_name=?, last_name=? WHERE userid=?";
OdbcConnection odbccon = new OdbcConnection(ConfigurationManager.ConnectionStrings["MySQL55"].ConnectionString);
OdbcCommand odbccmd = new OdbcCommand(cmdstr, odbccon);
string fname = ownfname.Text;
string lname = ownlname.Text;
odbccmd.Parameters.Add("@fname", OdbcType.NVarChar, 50).Value = fname;
odbccmd.Parameters.Add("@lname", OdbcType.NVarChar, 50).Value = lname;
odbccmd.Parameters.Add("@userid", OdbcType.Int).Value = userid;
odbccon.Open();
odbccmd.ExecuteScalar();
}
現在我面臨着獲取表單元素新值的麻煩。例如,當網頁在「ownfname」中呈現的文本是「Robert」時,然後將其修改爲「David」,然後單擊「提交」按鈕。提交訪問後,「ownfname.Text」屬性仍然給出「羅伯特」而不是「大衛」。我試圖尋找解決方案,但沒有運氣。
我無法理解這裏的確切問題。 代碼是否錯誤?任何人都可以幫我找出問題嗎? 對於這麼長的問題,我表示歉意。
如果我下面的回答不起作用,請提供更多關於如何填寫表單字段的信息,並提供更多的代碼beind頁面(.aspx.cs頁面) – 2011-05-05 06:19:50