如何在输入标签中使用runat =“ server”?

时间:2018-12-14 06:48:43

标签: html asp.net

我正在Asp.net中编写。将runat="server"属性添加到输入标记中时,其值为null。删除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"/>

3 个答案:

答案 0 :(得分:0)

使用 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;
    }

答案 1 :(得分:0)

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

方法1 您可以使用普通的javascript或jquery来更改HTML DOM元素。

方法2 您可以使用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);

答案 2 :(得分:0)

当您添加runat="server"并将简单的html控件添加到asp.net html控件时,asp.net将以某种方式呈现该控件的idname不会与同一页面上的其他asp.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