我正在我的global.asax中尝试一些URL重写 - 类似于这篇微软文章http://msdn.microsoft.com/en-us/library/system.web.routing.routetable.routes.aspx中的内容
我一直收到错误“BC30451:未声明名称'RouteTable'。”
我已将以下内容导入global.asax文件:
<%@ Import Namespace="System.Web.Routing" %>
<%@ Import Namespace="System.Web.Routing.Route" %>
<%@ Import Namespace="System.Web" %>
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
RegisterRoutes(RouteTable.Routes) ' the problem occurs here
End Sub
..但它似乎没有认出“RouteTable”。
我已经与我的托管服务提供商核实了我在.net 3.5上 - 虽然我不相信错误信息的底部是这样说的:
版本信息:Microsoft .NET Framework版本:2.0.50727.4234; ASP.NET版本:2.0.50727.4223
他们告诉我:
We have receive an update from our system engineers, net 3.5 is basically version 2 with a few add -ons. Similarly 4.5 is references as version 4.
They have also checked other sites on the server and they are also reflected as 2
这是否正确,因为我不确定我是否可以这样做而不是3.5?
谢谢,
答案 0 :(得分:1)
好吧,即使Microsoft .NET Framework版本:2.0.50727.4234,也会出现这种情况。可能会出现在屏幕上,仍然可以安装版本asp.net 3.5。我在网上查了几个来源,包括这个“asp.net版疯狂”:
http://blogs.msdn.com/b/jamesche/archive/2007/09/25/asp-net-version-madness.aspx
所以我不相信现在因运行较低版本而导致错误。
至于我得到的错误,我想我需要将它添加到我的web.config:
<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
答案 1 :(得分:0)
您必须运行3.5 SP1或更高版本才能使用RouteTable。我认为在Service Pack 1之前的3.5中没有路由,所以我建议您验证您至少在3.5 SP1上。
System.Environment.Version将为您提供此信息,以便您可以尝试在您的代码中检查您的.net版本号:
Response.Write(System.Environment.Version.ToString());
Response.End();
或者在你的aspx页面中:
<% Response.Write("Version: " + System.Environment.Version.ToString() ) %>