我正在使用路由将所有网址重定向到同一网页。
我不想指定每个页面的路由,因为内容管理系统正在改变它。
我在项目上只有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答案 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
)