我正在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"/>
答案 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将以某种方式呈现该控件的id
和name
不会与同一页面上的其他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