C# 表单和按钮,但按钮发出的调用不是通常的提交,因此回发对我来说不是完全必要的,只要它在ServerClick上执行它将“调用”,而这正是它不执行的地方,并绕过整个事件转到原始页面。我相信我明白你的意思,当它到达eventhandler方法时,“控制对象”不再

C# 表单和按钮,但按钮发出的调用不是通常的提交,因此回发对我来说不是完全必要的,只要它在ServerClick上执行它将“调用”,而这正是它不执行的地方,并绕过整个事件转到原始页面。我相信我明白你的意思,当它到达eventhandler方法时,“控制对象”不再,c#,asp.net,webforms,C#,Asp.net,Webforms,表单和按钮,但按钮发出的调用不是通常的提交,因此回发对我来说不是完全必要的,只要它在ServerClick上执行它将“调用”,而这正是它不执行的地方,并绕过整个事件转到原始页面。我相信我明白你的意思,当它到达eventhandler方法时,“控制对象”不再可用,如果我理解正确的话? <asp:PlaceHolder runat="server" ClientIDMode="Static" ID="TheScreen"> &

表单和按钮,但按钮发出的调用不是通常的提交,因此回发对我来说不是完全必要的,只要它在ServerClick上执行
它将“调用”,而这正是它不执行的地方,并绕过整个事件转到原始页面。我相信我明白你的意思,当它到达eventhandler方法时,“控制对象”不再可用,如果我理解正确的话?
<asp:PlaceHolder runat="server" ClientIDMode="Static" ID="TheScreen">
<a class="btn btn-primary btn-sm" id="action1" runat="server" onserverclick="Command_Click">Do First Action</a>
<a class="btn btn-primary btn-sm" id="action2" runat="server" onserverclick="Command_Click">Do Second Action</a>
<a class="btn btn-primary btn-sm" id="action3" runat="server" onserverclick="Command_Click">Do Third Action</a>
public void Command_Click(object sender, EventArgs e)
{
     CommandClicked?.Invoke(sender, e);
}
 <button type="button" class="btn" id="do-action1" runat="server" onserverclick="finish-action1">Do It</button>
UControl2 theObject = (UControl2)Page.LoadControl("~/path/to/Control2.ascx");
TheScreen.Controls.Clear();
TheScreen.Controls.Add(theObject);
UControl3 otherObject = (UControl3)Page.LoadControl("~/path/to/Control3.ascx");
TheScreen.Controls.Clear();
TheScreen.Controls.Add(otherObject);
<select id="..." name="..." required="required">
     <option disabled selected value="">select payment account</option>
     <asp:Repeater ID="..." ClientIDMode="Static" runat="server" ItemType="model.namespace">
          <ItemTemplate>
               <option value="<%#: Eval("...") %>">
                    <%#: Eval("...") + "  " + Eval("...") %>
               </option>
          </ItemTemplate>
     </asp:Repeater>
</select>
<input id="..." name="..." type="text" required="required" runat="server" />
<button id="finish-action3" class="btn" runat="server" onserverclick="do-action3">Do It</button>
<asp:PlaceHolder runat="server" ID="plhPlaceHolder1"></asp:PlaceHolder>
<asp:Button runat="server" ID="btnAction3"
    Text="Do Third Action"
    OnClick="btnAction3_Click"/>
protected void btnAction3_Click(object sender, EventArgs e)
{
    AddControl3();
}

private void AddControl3()
{
    Control3 objControl3 = (Control3)Page.LoadControl("~/Control3.ascx");
    plhPlaceHolder1.Controls.Clear();
    plhPlaceHolder1.Controls.Add(objControl3);
}
<asp:Label runat="server" ID="lblMessage"></asp:Label>
<asp:Button runat="server" ID="btnFinishAction3"
    Text="Finish Action 3"
    OnClick="btnFinishAction3_Click"/>
protected void btnFinishAction3_Click(object sender, EventArgs e)
{
    lblMessage.Text = "Finished Action 3.";
}
<asp:PlaceHolder runat="server" ID="plhPlaceHolder1"></asp:PlaceHolder>
<asp:HiddenField runat="server" ID="hifControl3Loaded"/>
<asp:Button runat="server" ID="btnAction3"
    Text="Do Third Action"
    OnClick="btnAction3_Click"/>
protected void Page_Load(object sender, EventArgs e)
{            
    if (hifControl3Loaded.Value == "1")
    {
        AddControl3();
    }
}

protected void btnAction3_Click(object sender, EventArgs e)
{
    AddControl3();
    hifControl3Loaded.Value = "1";
}

private void AddControl3()
{
    Control3 objControl3 = (Control3)Page.LoadControl("~/Control3.ascx");
    plhPlaceHolder1.Controls.Clear();
    plhPlaceHolder1.Controls.Add(objControl3);
}