如何获取元素的Request.Form [" elementName"],因为它具有属性runat =" server"?

时间:2014-05-28 13:19:37

标签: c# asp.net runatserver request.form

所以,我有一个元素:

<input id="loginEmail" type="email" class="form-control" name="email" placeholder="email" />

我可以使用Request.Form["email"]

来获取它

当我使用以下内容时:

<input id="loginEmail" runat="server" type="email" class="form-control" name="email" placeholder="email" />

注意:我添加runat="server"它不起作用。如何在不使用loginEmail.Value的情况下检索数据?

我想这样做的原因是在方法运行后保留输入值,就像这样(如果提交没有成功,我会显示一条错误消息,供用户编辑表单的值):< / p>

loginEmail.Value = Request.Form["email"];

谢谢大家。

2 个答案:

答案 0 :(得分:1)

如果它不是服务器控件,则按名称选择输入控件的值。如果它是服务器控件,则需要通过Id选择它。

Request.Form["loginEmail"]

使用Request.Form.AllKeys查看已发送的内容及其发送方式。

答案 1 :(得分:1)

虽然@Schadensbegrenzer的答案可能适用于您,但从概念上讲它是错误的。 Request.Form只会在传递name时为您提供价值。

提及的答案适合您,因为ASP.Net会自动添加name属性,其值与id相同,如果您没有指定它。所以这里id = name,你选择的只是基于name

您可以使用与runat = server的ID不同的名称,并尝试根据ID选择值,它会为您提供null

答案是你的问题是&#34;这是不可能的&#34;。