0

我有这个问题。两个页面:一个父级和一个子级通过 javascript 在弹出窗口中调用。子页面是搜索页面。在此用户可以选择其中一个结果并通过查询字符串和 javascript 将其重新发送到父页面。

这是我在 search.aspx 的代码隐藏中使用的脚本:

protected void Button4_Click(object sender, EventArgs e)
    {
        string url2 = "";

        if (GridView1.Rows.Count == 0)
        {
            string myStringVariable = string.Empty;
            myStringVariable = "Nessuna ricerca effettuata!";
            ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + myStringVariable + "');", true);
        }
        else 
        {
            bool chk = false;

            foreach (GridViewRow row in GridView1.Rows)
            {
                RadioButton rad = (RadioButton)row.FindControl("RadioButton1");
                Label lb1 = (Label)row.FindControl("Label1");

                if (rad.Checked)
                {
                    chk = true;
                    url2 = "classmer.aspx?cod=" + lb1.Text;
                    break;
                }
            }
            if (chk)
            {
                StringBuilder st = new StringBuilder();
                st.Append("<script language='javascript'>");
                st.Append("window.opener.location = '" + url2 + "';");
                st.Append("self.close();");
                st.Append("</script>");
                ClientScript.RegisterStartupScript(typeof(Page), "", st.ToString());
            }
            else if (!chk)
            {
                string myStringVariable = string.Empty;
                myStringVariable = "Nessun mercato selezionato!";
                ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + myStringVariable + "');", true);
            }
        }       

现在让我们转到 404 错误。父页面有这个 url “http://localhost/App/ClassMer/classmer.aspx” 子页面有这个 url “http://localhost/App/ClassMer/search.aspx”

通过单击搜索页面上的确认按钮,它绕过“App”文件夹(即部署应用程序时在 IIS7 中创建的虚拟路径)重新发送到此 URL“http://localhost/ClassMer/classmer.aspx”。)

我该如何解决这个问题?

我尝试了一些解决方案,例如添加 Request.ApplicationPath 或直接通过字符串指定我传递给 javascript 的 url 的路径,但没有发生。

请帮忙!!

谢谢

4

1 回答 1

0

Request.ApplicationPath应该没问题,我想。尝试以下操作:

url2 = HttpRuntime.AppDomainAppVirtualPath + "/classmer.aspx?cod=" + lb1.Text;
于 2011-09-20T13:56:51.160 回答