【问题标题】:How to use runat = "server" in input tag?如何在输入标签中使用 runat = "server"?
【发布时间】:2018-12-14 06:48:42
【问题描述】:

我在 asp.net 中写作。当我将runat="server" 属性添加到我的输入标签时,它的值为空。当我删除 runat="server" 时,它可以正常工作。谁知道原因?

我想从后面的代码中更改它的属性,这就是我写runat="server" 的原因。但是,该值为 null。

protected void btnSaveChanges_Click(object sender, EventArgs e)
{
    string current_id = Session["Current_user"].ToString(); 
    string a = Request.Form["newusername"]; 
    string b = Request.Form["newpassword"]; 
    string c = Request.Form["rewpassword"];
}

控制代码:

<input type="text" name="newusername" placeholder="Enter Username" required="required" runat="server"/>

【问题讨论】:

  • 它的值为 null 但究竟是什么时候?您能否提供一些代码,其值为 null。
  • protected void btnSaveChanges_Click(object sender, EventArgs e) { string current_id = Session["Current_user"].ToString();字符串 a = Request.Form["newusername"];字符串 b = Request.Form["newpassword"];字符串 c = Request.Form["rewpassword"];}
  • runat="server" 表示输入将存在于服务器端代码中,不再使用Request.Form。如果您想使用它的值,只需执行newusername.Text,假设您提供id="newusername" 属性。
  • 它的值不为空。但是我添加了runat = "server",它的值返回null。

标签: html asp.net


【解决方案1】:

当您添加runat="server" 并将简单的HTML 控件添加到asp.net HTML 控件时,asp.net 会以不与其他asp 冲突的方式呈现该控件的idname。 net 控件在同一页面上。

因此将输入更改为:(注意现在我添加了id,并删除了name!)

<input type="text" id="newusername" placeholder="Enter Username" required="required" runat="server"/>

并使用这样的帖子获取价值:

Request.Form[newusername.UniqueID]

或使用值:

newusername.value

要考虑的其他链接: Accessing control client name and not ID in ASP.NET

【讨论】:

    【解决方案2】:

    使用 newusername.Value 在您的服务器端函数中访问控件的值。

    喜欢

    protected void btnSaveChanges_Click(object sender, EventArgs e)
        {
            string current_id = Session["Current_user"].ToString();
            string a = newusername.Value;
            string b = newpassword.Value;
            string c = rewpassword.Value;
        }
    

    【讨论】:

      【解决方案3】:

      您不能使用 c# 服务器端代码更改 HTML 控件的属性。但是您可以使用其他几种方法来做到这一点 -

      方法一 您可以使用纯 javascript 或 jquery 来更改 HTML DOM 元素。

      方法二 您可以使用 HtmlGenericControl 动态创建所需的 HTML 元素。

      HtmlGenericControl username = new HtmlGenericControl("input");
      username.attr("type", "text");
      username.attr("name", "newusername");
      

      然后您可以将控件附加到某个 div 中,例如,

      您将在其中添加动态控件的前端 HTML 代码-

      <div id="dynaHtml" runat="server"></div>
      

      现在,您可以使用该 div 将动态控件添加到页面 -

      dynaHtml.Controls.Add(username);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-29
        • 2014-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多