0

我正在尝试在网络表单中使用 asp 路由。

想要将主页路由到 defaut.aspx

所有其他 aspx 页面到 cms.aspx

我在全球制作了这行代码

      routes.MapPageRoute(//this for home page
       "Home",
       string.Empty,
       "~/Default.aspx"
   );
    routes.MapPageRoute("defaultRoute", "{*value}", "~/cms.aspx");//all other pages

这适用于本地主机

http://localhost:36443 //redirect to default.aspx 

http://localhost:36443/page1//redirect to cms.aspx 

问题从这里开始:

http://localhost:36443/page1/somevalue

这次路由不识别物理文件(css js ...等)并开始将它们路由到cms.aspx。

在生产网站上:

http://mySubDomain.website.com

问题更奇怪,wcf 正在路由到 cms.aspx。

例如这个链接:

http://subdomain.website.com/WebServices/webservice.svc/webserviceFunction

重定向到 cms.aspx 而不是忽略物理文件 svn。

我尝试了各种忽略,完全没有效果

 routes.Ignore("{resource}.svc/{*pathInfo}");
 routes.Ignore(("{file}.svn"));
 routes.Ignore("{*allcss}", new { allcss = @".*\.css(/.*)?" });
 routes.Ignore("{*alljpg}", new { alljpg = @".*\.jpg(/.*)?" });
 routes.Ignore("{*svc}", new { alljs = @".*\.svc(/.*)?" }); 

我认为 microsoft 从 mvc 到 webform 的路由没有任何问题。

有谁知道如何解决这个问题。

谢谢

巴罗兹

4

1 回答 1

0

您可以使用

<script type="text/javascript" src='<%= ResolveUrl("~/path to script ")%>'></script>

或者

 routes.Ignore("{resource}.js/{*pathInfo}");

但你需要写(“你放置js文件的文件夹的名称/{resource}.js/{*pathInfo}”);可以使用它

于 2013-12-25T10:27:48.930 回答