7

我做了一些研究,发现了如何从输入 html 文本框中读取值。

这对我来说效果很好,但立即不起作用。

这是我的代码,它输入 html 返回 null

<input type="text" name="inpNickname" placeholder="Nickname" data-placement="right" data-toggle="tooltip" title="Nickname" id="txtNickname" runat="server"/>

<input type="text" name="inpPassword" placeholder="Password" data-placement="right" data-toggle="tooltip" title="Password" id="txtPassword" runat="server"/>

string Nickname = Request.Form["inpNickname"];
string Password = Request.Form["inpPassword"];

如果我将 Request.Form[] 更改为 ID,它仍然不起作用。

4

5 回答 5

25

由于它在服务器上运行...

txtNickname.Value并且txtPassword.Value会给你你所需要的。

当您指定时,runat="server"您实际上是在为您的代码隐藏类提供一个属性。因此,您可以直接访问该属性及其属性。

于 2013-07-17T15:01:36.930 回答
5

为什么不使用服务器控件

<asp:TextBox ID="txtNickname" runat="server" />

后面的代码:

var nickName = txtNickname.Text;
于 2013-07-17T15:04:06.893 回答
4
string Nickname = txtNickname.Text;
string Password = txtPassword.Text;

他们在服务器上运行,看这个

于 2013-07-17T15:04:58.577 回答
1

使用name="inpNickname"不起作用,只使用 ID 所以在这种情况下:txtNickname

于 2018-12-19T16:41:29.743 回答
0

标准做法:

前端 :

 <asp:TextBox runat="server" id="testid"></asp:TextBox>

后端:

String test = testid.text;

通常我使用这些简单的服务器控件,但是对于复杂的表单和回发,事情并不总是那么简单......我找到了另一种从后端获取客户端控制的可靠方法,即使没有找到该控件在代码隐藏中使用 control.text 或 thecontrol.value 例如:

后端:

String test = Request.Form["ctl00$MainContent$TextboxControlsId"].ToString();

这将获取带有 id: TextboxControlsId 的文本框的内容,它是在站点管理员之外定义的。

如果您需要查找控件的 ID(很可能它不会保留您在前端编写的相同 id),您可以使用以下命令循环访问表单控制键:

foreach (string s in Request.Form.Keys ) { 
    Response.Write(s.ToString() + ":" + Request.Form[s] + ""); 
} 
于 2020-02-27T13:57:15.333 回答