我疯狂地尝试将 HTML 文本输入的值(不带 runat="server")从用户控件发送到后面的代码。我得到一个空字符串,没有错误。步骤如下:
用户单击 ID="name_btn"的 ImageButton。
该值必须传递给后面的代码。我正在测试是否使用页面加载(if (IsPostBack))和按钮单击功能传递了该值,但两者仍然没有值。
请注意,由于某些其他原因,我不希望文本输入在服务器上运行,因此我不想添加 runat="server"。请问有什么帮助吗?
用户控制页面(name.ascx)
<input type="text" ID="name" />
<asp:ImageButton runat="server" ID="name_btn" OnClick="name_Click" ImageUrl="~/icon-ok.png" />
用户控制 - 代码隐藏(name.ascx.cs)
public string nameBox;
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
nameBox = Request.Form["name"];
Response.Write("Name: " + nameBox);
}
}
protected void name_Click(object sender, EventArgs e)
{
nameBox = Request.Form["name"];
Response.Write("Name: " + nameBox);
}
母版页
<uc:name runat="server" ID="UCname" />
最佳答案
我想这与您想要做的事情有些冲突。例如,在服务器上您使用 Request.Form[""] 来获取 html 输入元素,但您通过 id 属性请求它。 Request.Form 支持通过索引和名称查找元素。
那么您是否尝试过向 html 输入元素添加 name=""?
关于c# - 将 HTML 文本输入(无运行服务器)的值从用户控件传递到代码隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29575629/