Asp.net 回击按钮会丢失IE中的ID值

Asp.net 回击按钮会丢失IE中的ID值,asp.net,vb.net,Asp.net,Vb.net,我有一个表单,其中包含三个单选按钮,其中包含硬编码ID,当我提交页面,然后返回时,单选按钮ID分别更改为ctl23、ctl24和ctl25。我不希望发生这种情况,因为ID取决于提交页面时发生的情况 我怎样才能让这不发生 编辑 另外,当我按下后退按钮后点击单选按钮页面上的提交按钮时,我会得到这个错误和堆栈跟踪 发生错误,因为找不到id为“ctl23”的控件,或者回发后为同一id分配了不同的控件。如果未分配ID,请显式设置引发回发事件的控件的ID属性以避免此错误。 描述:执行当前web请求期间发生未

我有一个表单,其中包含三个单选按钮,其中包含硬编码ID,当我提交页面,然后返回时,单选按钮ID分别更改为ctl23、ctl24和ctl25。我不希望发生这种情况,因为ID取决于提交页面时发生的情况

我怎样才能让这不发生

编辑 另外,当我按下后退按钮后点击单选按钮页面上的提交按钮时,我会得到这个错误和堆栈跟踪

发生错误,因为找不到id为“ctl23”的控件,或者回发后为同一id分配了不同的控件。如果未分配ID,请显式设置引发回发事件的控件的ID属性以避免此错误。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

异常详细信息:System.Web.HttpException:发生错误,因为找不到id为“ctl23”的控件,或者回发后为同一id分配了不同的控件。如果未分配ID,请显式设置引发回发事件的控件的ID属性以避免此错误

源错误:

在执行当前web请求期间生成了未经处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来识别

堆栈跟踪:

[HttpException 0x80004005:发生错误,因为无法找到id为“ctl23”的控件,或者回发后为同一id分配了不同的控件。如果未分配id,请显式设置引发回发事件的控件的id属性以避免此错误。] System.Web.UI.Page.ProcessPostDataNameValueCollection postData,布尔值fBeforeLoad+836 System.Web.UI.Page.ProcessRequestMain布尔IncludeStages在区域同步点之前,布尔IncludeStages在区域同步点+1743

编辑 单选按钮ID是如何硬编码的

Public Function GetDivButton(ByVal imageUrl As String, ByVal text As String, ByVal selected As Boolean, ByVal radioArgument As String) As Div

    Dim div As New Div

    If selected Then
        div.CSSClass = "createadbuttonselected"
    Else
        div.CSSClass = "createadbutton"
    End If


    Dim divButtonImage As New Div
    div.Controls.Add(divButtonImage)
    divButtonImage.CSSClass = "createadbuttonimage"

    Dim image As New Image
    divButtonImage.Controls.Add(image)
    image.ImageUrl = imageUrl

    Dim divButtonText As New Div
    div.Controls.Add(divButtonText)
    divButtonText.CSSClass = "createadbuttontext"
    divButtonText.InnerText = text

    Me._Radio = New RadioButton
    div.Controls.Add(Me._Radio)
    Me._Radio.GroupName = "stepcreateadgroupname"
    Me._Radio.ID = radioArgument

    If selected Then
        Me._Radio.Checked = True
    End If

    Return div

End Function


divStepContentInner.Controls.Add(Me.GetDivButton("../../images/createad/livefeed.png", "xxxxx", True, "Live"))
    divStepContentInner.Controls.Add(Me.GetDivButton("../../images/createad/search.png", "xxxxx", False, "Search"))
    divStepContentInner.Controls.Add(Me.GetDivButton("../../images/createad/featured.png", "xxxxx", False, "Featured"))
提交按钮
你能展示一下你是如何硬编码单选按钮的ID的吗?@Pbirkoff。我已经更新了这个问题
Me._LinkButton = New HyperLink
    divStepButtonContainer.Controls.Add(Me._LinkButton)
    Me._LinkButton.ID = "HyperLinkNextCreateAd"
    Me._LinkButton.CssClass = "stepbutton"
    Me._LinkButton.NavigateUrl = "javascript:__doPostBack('CreatePageAdControl1', $('input:radio[name=stepcreateadgroupname]:checked').val())"