Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 路由asp.net Web表单默认页面_C#_Asp.net_Webforms - Fatal编程技术网

C# 路由asp.net Web表单默认页面

C# 路由asp.net Web表单默认页面,c#,asp.net,webforms,C#,Asp.net,Webforms,我正在使用路由将所有url重定向到同一页面 我不想指定每个页面的路由,因为内容管理系统会改变它 关于这个项目我只有两页 1) default.aspx 2) cms.aspx 直到今天我还在用 routes.MapPageRoute("defaultRoute3", "{*value}", "~/cms.aspx"); 在cms.aspx页面中,我使用这段代码来理解要加载哪个视图 string objectCurrentNameUrl = Page.RouteData.Values["v

我正在使用路由将所有url重定向到同一页面

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

关于这个项目我只有两页

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,然后我进行了拆分

当尝试在url上使用另一个参数时,问题开始出现

mywebsite.com/zone/114334

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

知道如何在不编辑路由脚本和css的情况下将所有url路由到cms.aspx吗 此示例将帮助您只匹配无扩展名的URL,从而确保静态文件的安全并正确返回

public Route MapPageRoute(
    "defaultRoute3",
    "{folder}/{id}",
    "~/cms.aspx",
    false,
    null,
    new RouteValueDictionary { { "id", "(.*)/([^\./]+)$" }}
)
这是您可以使用的全部重载。使用“约束”参数排除静态文件

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

你能把相关的代码添加到你的答案中吗?仅链接的答案通常不受鼓励——如果链接发生更改或消失,您的答案将不再有用。-1请更新以说明如何使用此重载来解决原始问题。@JohnSaunders我已经有一段时间没有使用regex了,伙计。。你让我找了一个小时才找到合适的。。我希望答案中的更新对您来说足够好。我无法对其进行真实测试,因此可能需要对更新进行一些调整。提示:就我而言,如果你“有一段时间没有使用正则表达式”,那么你不应该发布一个需要正则表达式的答案。我们并不总是有机会在我们的答案中测试代码,但是由于您已经有一段时间没有使用regex了,所以测试它对您来说是件好事。一旦你对它进行了测试,再发布一条评论,我至少会删除否决票。我甚至可以投票。我当然已经测试过正则表达式了!我没有完全测试路线以确保它是完美的。但是我知道的正则表达式很好!