Default.aspx重定向

时间:2012-05-11 20:02:41

标签: asp.net vb.net

我有一个这样的default.aspx页面,目的是根据主机头重定向。

<%
if(System.Web.HttpContext.Current.Request.Url.Host == "xxx.xxx.com")
{
response.redirect ("place/subplace/xxx.aspx")
}
else
{
response.redirect ("place/xxx.aspx")
}
%>

但它给出了错误“编译器错误消息:BC30201:预期的表达式。”

我做错了什么?

4 个答案:

答案 0 :(得分:4)

在C#中,表达式以分号;

结束
if (System.Web.HttpContext.Current.Request.Url.Host == "xxx.xxx.com")
{
    Response.Redirect("place/subplace/xxx.aspx"); <-- here
} 
else
{
    Response.Redirect("place/xxx.aspx"); <-- and here
}

和C#区分大小写。 ResponseRedirect都以大写字母开头。

修改:因为您现在将其标记为VB.Net

您的代码不是有效的VB.net代码。如果是,它应该如下所示:

If System.Web.HttpContext.Current.Request.Url.Host = "xxx.xxx.com" Then
    Response.Redirect("place/subplace/xxx.aspx")
Else
    Response.Redirect("place/xxx.aspx")
End If

答案 1 :(得分:0)

当编译器给出“预期表达式”错误时,通常是语法错误。在response.redirect?

之后添加一个半列(;)

答案 2 :(得分:0)

以下适用于我:

protected void Page_Load(object sender, EventArgs e)
    {
        if(System.Web.HttpContext.Current.Request.Url.Host == "xxx.xxx.com")
        {
            Response.Redirect("place/subplace/xxx.aspx");
        }
        else
        {
            Response.Redirect("place/xxx.aspx");
        }
    }

答案 3 :(得分:0)

这对我有用。 http://www.w3schools.com/asp/met_redirect.asp

使用上面的链接,我写了以下几行,并且执行没有任何问题。请注意,最后没有分号。我的default.aspx页面只包含以下三行。

<%
    Response.Redirect("~/portal")
%>

可能的原因是;通常在.aspx页面的顶部或web.config文件中提到语言。如果没有提到语言,IIS使用VB.NET编译页面,我们知道VB.NET不使用分号来终止语句。