【问题标题】:Get value from input html in codebehind c#从代码隐藏 C# 中的输入 html 获取值
【发布时间】:2013-07-16 05:08:14
【问题描述】:

我做了一些研究,发现了如何从输入的 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,它仍然不起作用。

【问题讨论】:

  • 你试过通过ID获取吗?
  • 是的,这也行不通
  • “不起作用”是什么意思?字符串保持为空?

标签: c# html asp.net


【解决方案1】:

既然是在服务器上运行...

txtNickname.ValuetxtPassword.Value 将为您提供所需的一切。

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

【讨论】:

  • 当我尝试这个时,我无法将 .Text 放在 txtNickname 和 txtPassword 之后
  • 使用 txtNickname.Value 代替。
  • 我会推荐使用 ASP.NET 控件(即 ),从长远来看它会让你的生活更轻松
  • @SamHood 我会在一定程度上同意。如果您绑定到 asp.net Web 表单,使用服务器控件是一个不错的选择。我强烈建议使用像 mvc 这样更好的平台,虽然这样可以让生活更轻松:) ...但这不是最初的问题。
  • 我同意 Sam Hood 和 Bluetoft,如果你想更接近 HTML,那么使用 ASP.NET MVC,但我也同意用runat="server" 修饰 HTML 控件是自找麻烦,尤其是任何来维护您的代码的人,您也将能够充分利用 Visual Studio 的Intellisense
【解决方案2】:

为什么不使用server control

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

后面的代码:

var nickName = txtNickname.Text;

【讨论】:

    【解决方案3】:
    string Nickname = txtNickname.Text;
    string Password = txtPassword.Text;
    

    它们在服务器上运行,请参阅this

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        标准方法:

        前端:

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

        后端:

        String test = testid.text;
        

        通常我使用这些简单的服务器控件,但是对于复杂的表单和回发,事情并不总是那么简单...... 我找到了另一种从后端获取客户端控件的可靠方法,即使使用 control.text 或 control.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] + ""); 
        } 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-04-10
          • 2012-12-28
          • 1970-01-01
          • 2019-11-23
          • 1970-01-01
          • 2012-03-01
          相关资源
          最近更新 更多