【问题标题】:How to get Request.Form["elementName"] of an element while it has the attribute runat="server"?如何获取具有属性 runat="server" 的元素的 Request.Form["elementName"]?
【发布时间】:2014-05-28 13:19:37
【问题描述】:

所以,我有一个元素:

<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 的情况下检索数据?

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

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

谢谢大家。

【问题讨论】:

  • 我说你想在正常回发中保留值是否正确?
  • 是的,绝对!这就是为什么我首先要这样做的全部原因。

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


【解决方案1】:

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

Request.Form["loginEmail"]

使用Request.Form.AllKeys 检查发送的内容以及发送方式。

【讨论】:

    【解决方案2】:

    尽管@Schadensbegrenzer 的答案可能对您有用,但从概念上讲它是错误的。 Request.Form 只会在 name 被传递时给你价值。

    提到的答案对您有用,因为ASP.Net 将自动添加与id 相同的值的name 属性,如果您不指定它。所以这里 id = name 和你选择的只是基于name

    您可以只使用与runat = server 不同的名称并尝试根据 id 选择值,它会给您null

    答案是你的问题是“不可能”。

    【讨论】:

    • @yaharga 很高兴听到这个消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 2012-12-16
    相关资源
    最近更新 更多