ASP.net中的表单字段隐藏代码尽管Runat=Server

vdgimpew  于 2023-10-21  发布在  .NET
关注(0)|答案(3)|浏览(127)

这是ASPX页面上的HTML表单字段。
请注意“runat=server”标记,它应该让我在代码隐藏中访问它。

  1. <div class="col-xs-12 col-sm-6 col-md-6">
  2. <div class="form-group">
  3. <input type="text" name="Address1" id="Address1" runat="server" class="form-control input-lg address" placeholder="Full Address" maxlength="50" tabindex="2" >
  4. </div>
  5. </div>

下面是C#代码隐藏的一个片段。

  1. string test = Address1.Value;

然而,字符串测试失败,因为Address1.Value为null。
我完全按照我找到的here,但它总是空的。我已经搜索了高和低,但我发现的一切suggests the same thing这不工作的原因。你能帮帮我吗?

kqqjbcuj

kqqjbcuj1#

确保它到达服务器

您是否正在执行任何会触发实际PostBack的操作,从而将元素中的值发送到服务器?.NET不会知道你的元素有值,直到实际的<form>元素被提交,这将填充适当的值。
如果你要添加一个提交表单的按钮,那么你的值应该在PostBack出现之后出现:

Close Things Up

另一方面,你需要确保你的<input>标签按照预期正确地关闭了/>,以避免任何可能的问题,因为它没有按照预期发布:

  1. <input type="text" name="Address1" id="Address1" runat="server" class="form-control input-lg address" placeholder="Full Address" maxlength="50" tabindex="2" />

示例

你可以see a complete example Gist reproducing this here

展开查看全部
hxzsmxv2

hxzsmxv22#

尝试在输入标记中添加value属性。

  1. <div class="col-xs-12 col-sm-6 col-md-6">
  2. <div class="form-group">
  3. <input type="text" name="Address1" id="Address1" runat="server" class="form-control input-lg address" placeholder="Full Address" maxlength="50" tabindex="2" value="" >
  4. </div>
  5. </div>
svdrlsy4

svdrlsy43#

奇怪,但对我来说,控制有ID在大写,而不是id在aspx方面的控制小写。例如

  1. <span runat="server" ID="myLabel">Test</span>

当我把ID改为id时,就成功了。
我仍然不相信这一点,但这解决了我的问题。
希望它能帮助到某人。

相关问题