C# Asp.NETMVC4中的路由
我正在获取VirtualPath必须是以~/开头的非空字符串。错误 描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.ArgumentException:VirtualPath必须是 以~/开头的非空字符串。参数名称:virtualPath 在以下代码中:C# Asp.NETMVC4中的路由,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我正在获取VirtualPath必须是以~/开头的非空字符串。错误 描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.ArgumentException:VirtualPath必须是 以~/开头的非空字符串。参数名称:virtualPath 在以下代码中: public class RouteTableHelper { public static RouteCollection
public class RouteTableHelper
{
public static RouteCollection UserSiteRoutes()
{
RouteCollection routes = new RouteCollection();
RegisterRoutes(routes);
return routes;
}
public static void RegisterRoutes(RouteCollection routes)
{
...............
routes.MapPageRoute("catalogAnnualreport2013", "catalog/annualreport2013", "www.facebook.com");
.............
}
}
根据,第三个参数应该是一个虚拟url,包括应用程序root~。因此参数的名称为:physicalFile
比如:
routes.MapPageRoute( "catalogAnnualreport2013" // routeName
, "catalog/annualreport2013" // routeUrl
, "~/yourPage.aspx" // physicalFile
);
其中yourPage.aspx是您自己的ASP.NET aspx页面之一。你不能路由到外部url,比如你问题中的www.facebook.com
所有到外部源的重定向都需要通过控制器操作,或者在ASPX页面或ASHX处理程序中完成。我认为MapPageRouteI仅用于WebForms路由。我一直在MVC应用程序中使用扩展。路由不会扩展到您自己的站点。使用标准的MVC路由设置并执行控制器操作将用户重定向到Facebook是否更好
public class CatalogController:Controller
{
public ActionResult Annualreport2013()
{
return Redirect("http://www.facebook.com");
}
}
你不能路由到任意URL,它必须在你的网站内,如果你想转到其他网站,你必须进行重定向。你能告诉我如何重定向到外部URL吗?请尽快给出答复