我做了一些研究,并了解了如何从输入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,它仍然无效。
答案 0 :(得分:20)
因为它在服务器上运行...
txtNickname.Value
和txtPassword.Value
会为您提供所需的信息。
当您指定runat="server"
时,您实际上是在为您的代码隐藏类提供属性。因此,您可以直接访问该属性及其属性。
答案 1 :(得分:4)
为什么不使用server control?
<asp:TextBox ID="txtNickname" runat="server" />
代码背后:
var nickName = txtNickname.Text;
答案 2 :(得分:4)
string Nickname = txtNickname.Text;
string Password = txtPassword.Text;
他们正在服务器上运行,请参阅this
答案 3 :(得分:1)
使用name="inpNickname"
不起作用,只能使用ID,因此在这种情况下:txtNickname
答案 4 :(得分: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(很可能不会保存您在前端编写的ID),则可以使用:
foreach (string s in Request.Form.Keys ) {
Response.Write(s.ToString() + ":" + Request.Form[s] + "");
}