我看到开发机器和部署服务器之间的 Url.RouteUrl 输出存在差异。我正在运行 Visual Studio 2008,我的部署框是 Windows 2003 Server。我已将 Global.asax.cs 配置为在路由表中使用 .aspx 扩展名运行。但是,当我使用“Search-Basic”命名路由时,Url.RouteUrl("Search-Basic", new {category = "Test", searchExpression = "search this"}) 没有输出
查看代码:
<%= Url.RouteUrl("Search-Basic", new {category = "test", searchExpression="search this"}) %>
Global.asax.cs 代码:
// routes for IIS 6 and version below
routes.MapRoute(
"Search-Basic",
"Search.aspx/Basic/{category}",
new { controller = "Search", action = "Basic", category = "All" }
);
routes.MapRoute(
"Default", // Route name
"{controller}.aspx/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
routes.MapRoute(
"Root",
"",
new { controller = "Home", action = "Index", id = "" }
);
在我的开发框中,我得到了预期的输出:/Search.aspx/Basic/Test?searchExpression=search%20this
但是,在我的部署服务器上,我根本没有得到任何输出。一个区别可能是我在部署服务器上的虚拟目录中运行应用程序。类似于:http : //testmachine.com/sm/testappname/ 其中“/sm”是一个虚拟目录,“/testappname”是一个包含我的应用程序的虚拟目录。
有任何想法吗?
非常感谢你。