我有一个基本的HTML表单,根据数据库中存在的记录数量插入到服务器端div标签中.这个HTML表单很好,一切都很好.但是在我的操作页面上,我似乎无法从后面的代码中访问输入元素.我已经尝试过使用Request范围,但是在这种方法上已经空洞了.还有其他建议吗?
以下所有建议都很棒,通常这就是我要做的.但是这些表单是在编译页面后即时构建的,因此runat ='server'对我没有任何作用.它只是传递到html页面.
Bry*_*ein 66
如果您正在访问纯HTML表单,则必须通过提交按钮(或通过javascript帖子)将其提交给服务器.这通常意味着您的表单定义将如下所示(我将关闭内存,请确保检查html元素是否正确):
<form method="POST" action="page.aspx">
<input id="customerName" name="customerName" type="Text" />
<input id="customerPhone" name="customerPhone" type="Text" />
<input value="Save" type="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
您应该能够访问customerName和customerPhone数据,如下所示:
string n = String.Format("{0}", Request.Form["customerName"]);
Run Code Online (Sandbox Code Playgroud)
如果你有method="GET"
表格(不推荐,它会弄乱你的网址空间),你将不得不访问这样的表单数据:
string n = String.Format("{0}", Request.QueryString["customerName"]);
Run Code Online (Sandbox Code Playgroud)
这当然只有在表格"已发布","已提交"或通过"回发"完成时才有效.(即有人点击了"保存"按钮,或者这是通过javascript以编程方式完成的.)
另外,请记住,只有在不使用服务器控件(即runat="server"
)时才能以这种方式访问这些元素,而服务器控件的id和名称则不同.
小智 21
我猜的是你需要将那些输入元素设置为runat ="server".
因此您将无法访问该控件
<input type="text" name="email" id="myTextBox" />
Run Code Online (Sandbox Code Playgroud)
但是你将能够合作
<input type="text" name="email" id="myTextBox" runat="server" />
Run Code Online (Sandbox Code Playgroud)
并通过使用阅读
string myStringFromTheInput = myTextBox.Value;
Run Code Online (Sandbox Code Playgroud)
通常应该这样做Request.Form["elementName"]
.
例如,如果您有,<input type="text" name="email" />
则可以使用它Request.Form["email"]
来访问其值.
归档时间: |
|
查看次数: |
271655 次 |
最近记录: |