我做了一些搜索来找到这个,所以即使这个问题已经超过 1 年了,我也认为它可能很有用......
我刚刚遇到这个问题。我需要使用 use [input type="radio" runat="server" ...] 因为我必须针对每个选择包含额外的 HTML "data-*" 属性。
我在这里使用了两个答案的组合来提供对我有帮助的解决方案。
我的 HTML 看起来像:
<div id="pnlOpts" runat="server">
<input type="radio" name="rblReason" runat="server" value="1" /> <label>Opt 1</label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="1" /> <label>Supplied Reason 1 </label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="2" /> <label>Supplied Reason 2 </label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="3" /> <label>Supplied Reason 3 </label><br />
</div>
我的代码隐藏看起来像:
if(pnlOpts.Controls.OfType<HtmlInputRadioButton>().Any(a=>a.Checked))
{
HtmlInputRadioButton selected = pnlOpts.Controls.OfType<HtmlInputRadioButton>().Where(a => a.Checked).FirstOrDefault();
var btnValue = selected.Value;
var dataAttVal = selected.Attributes["data-att"];
...
}