路由asp.net webform默认页面

时间:2013-10-16 09:02:25

标签: c# asp.net webforms

我正在使用路由将所有网址重定向到同一网页。

我不想指定每个页面的路由,因为内容管理系统正在改变它。

我在项目上只有2页

1)的Default.aspx

2)cms.aspx

直到今天我才使用

 routes.MapPageRoute("defaultRoute3", "{*value}", "~/cms.aspx");

在cms.aspx页面中,我使用此代码来了解要加载的视图

  string objectCurrentNameUrl = Page.RouteData.Values["value"] as string;

    string[] arrOfParmeters = objectCurrentNameUrl.Split('/');

一切参数都很完美 例如: mywebsite.com/zone

重定向到cms.aspx然后我进行了拆分。

尝试在网址

上使用antoher参数时,问题就出现了

mywebsite.com/zone/114334

重定向对于cms.aspx页面是可以的,但随后路由开始将所有javascript,css等发送到cms.aspx。

任何想法如何在没有路由脚本和css

的情况下将所有URL路由到cms.aspx

1 个答案:

答案 0 :(得分:0)

编辑: 此示例将帮助您仅匹配无扩展名的URL,因此可以保证您的静态文件安全并正确返回

public Route MapPageRoute(
    "defaultRoute3",
    "{folder}/{id}",
    "~/cms.aspx",
    false,
    null,
    new RouteValueDictionary { { "id", "(.*)/([^\./]+)$" }}
)

这可以使用below overload完全重载。使用constraints参数排除静态文件

public Route MapPageRoute(
    string routeName,
    string routeUrl,
    string physicalFile,
    bool checkPhysicalUrlAccess,
    RouteValueDictionary defaults,
    RouteValueDictionary constraints,
    RouteValueDictionary dataTokens
)