我想与JavaScript共享C#服务器端存在的currentTab变量。这是我的代码:

C#:

public int currentTab = 1;

protected void Page_Load(object sender, EventArgs e)
{
    Page.ClientScript.RegisterStartupScript(Type.GetType("System.String"), "addScript", "showTab(" + currentTab + ");", true);
}

JavaScript:
var currentTab = "<%=currentTab%>";

function showTab(index)
{
    currentTab = index;
    // Show tab at (index)
}

我使用这种方法再次在PostBack上获取了当前标签。但是,C#上的currentTab1之后仍然是PostBack。我该如何解决这个问题?

最佳答案

您可以将索引从JavaScript函数写入隐藏字段,然后在回发时读取。

如果页面是回发的,则在代码中检查hiddenfield。
像这样:

protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
        {
            currentTab = Int32.Parse(HiddenTabValue.Value);
        }

    }

09-26 10:22