如何从asp.net代码后面访问html表单input

我有一个基本的HTML表单,根据数据库中存在多lesslogging,将其插入到服务器端的div标记中。 这个HTML表单出来就很好,而且一切都很好。 但在我的行动页面,我似乎无法从后面的代码访问input元素。 我尝试过使用请求范围,但在这个方法上已经空了。 还有其他build议吗?

以下所有build议都很棒,通常我会这样做。 但是在编译页面之后,这些表单正在build立,所以runat ='server'对我没有任何帮助。 它只是通过这个HTML页面。

如果您正在访问纯HTML表单,则必须通过提交button(或通过javascript post)将其提交给服务器。 这通常意味着你的表单定义将看起来像这样(我要离开内存,请确保你检查的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> 

您应该能够像这样访问customerName和customerPhone数据:

 string n = String.Format("{0}", Request.Form["customerName"]); 

如果你在表单中有method="GET" (不推荐,它会弄乱你的URL空间),你必须像这样访问表单数据:

 string n = String.Format("{0}", Request.QueryString["customerName"]); 

这当然只有在表单是“发布”,“提交”或通过“回发”完成的情况下才有效。 (即有人点击了“保存”button,或者这是通过JavaScript编程式完成的。)

另外,请记住,只有当您不使用服务器控件(即runat="server" )时才能以这种方式访问​​这些元素,而服务器控件的id和name是不同的。

我猜测是你需要将这些input元素设置为runat =“server”

所以你将无法访问控制

 <input type="text" name="email" id="myTextBox" /> 

但是你可以和你一起工作

 <input type="text" name="email" id="myTextBox" runat="server" /> 

并从中读取使用

 string myStringFromTheInput = myTextBox.Value; 

通常应该使用Request.Form["elementName"]来完成。

例如,如果您有<input type="text" name="email" />那么您可以使用Request.Form["email"]来访问它的值。

最简单的方法是在所有元素上包含ID和runat服务器标签。

 <div id="MYDIV" runat="server" /> 

既然听起来像这些是dynamic插入的控件,你可能会喜欢FindControl()。

由于您使用的是asp.net代码隐藏function,因此请在元素和runat = server中添加一个id。

然后您可以在后面的代码中引用对象。

编辑:想到别的东西。

你说你正在dynamic地创build一个表单 – 你真的指的是一个<form>及其内容,因为asp.net需要处理页面上的多个表单,它已经为你创build了一个uberform。