0

Webフォームでaspルーティングを使用しようとしています。

ホーム ページを defaut.aspx にルーティングしたい

cms.aspx への他のすべての 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

物理ファイル svn を無視する代わりに、cms.aspx にリダイレクトします。

あらゆる種類の無視を試しましたが、まったく効果がありませんでした

 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(/.*)?" }); 

マイクロソフトは、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 に答える