警告脚本和asp.net上的response.redirect和asp.net中的.cs页面

时间:2012-06-22 11:33:44

标签: asp.net

我在aspx页面中使用过这个scriptmanager。

ScriptManager.RegisterStartupScript(this, this.GetType(), "Redit", "alert('Registered Successfully !!'); window.location='" + Request.ApplicationPath + "/admin/CreateSubAdmin.aspx';", true);

当我在本地服务器中使用它时,它正常工作。和网址看起来像:主机网址:xyz.aspx / admin / CreateSubAdmin.aspx

下划线部分位于管理部分。

但在服务器上这没有正常工作。它看起来像:/admin/CreateSubAdmin.aspx only。

但我希望它显示为www.xyz.com/admin/CreateSubAdmin.aspx。

所以我写错了。请帮助我。

提前致谢..

2 个答案:

答案 0 :(得分:0)

您必须做的唯一事情是删除ApplicationPath,或删除第一个斜杠。

ScriptManager.RegisterStartupScript(this, this.GetType(), "Redit",
 "alert('Registered Successfully !!'); window.location='" + Request.ApplicationPath + "admin/CreateSubAdmin.aspx';", true);

ScriptManager.RegisterStartupScript(this, this.GetType(), "Redit", 
 "alert('Registered Successfully !!'); window.location='/admin/CreateSubAdmin.aspx';", true);

这里的问题是如何制作适用于您案例的完整网址。

您可以选择使用"http:" + Request.Url.Host来构建它以获得完整的网址

答案 1 :(得分:0)

我使用这样的辅助函数:

public static string GetApplicationRoot()
{
    string host = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority);
    string applicationPath = HttpContext.Current.Request.ApplicationPath;
    if (applicationPath == "/")
    {
        return host;
    }
    else
    {
        return host + applicationPath;
    }
}