-1

我有一个这样的 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

4 回答 4

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
于 2012-05-11T20:04:47.343 回答
0

当编译器给出错误 "expression expected" 时,它通常是一个语法错误。在 response.redirect 之后添加一个半列(;)?

于 2012-05-11T20:05:32.563 回答
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");
        }
    }
于 2012-05-11T20:10:19.490 回答
0

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

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

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

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

于 2013-07-05T15:58:28.867 回答