我有一个这样的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:预期的表达式。”
我做错了什么?
答案 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#区分大小写。 Response
和Redirect
都以大写字母开头。
修改:因为您现在将其标记为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不使用分号来终止语句。