2012-02-12 9 views
0

私は、カスタム拡張子.pageのすべての要求を受け取るhttpハンドラを持っています。これは古いファッションのasp.netでうまく動作し、aspxファイルのServer.Transferを選択するだけです。 しかし、これをMVCに移動して、コントローラまたはビューのいずれかにリルートしたいと思います。私はコントローラーを好むだろうが、それは問題ではない。MVCコントローラまたはビューへの転送要求

この件に関するお手伝いがあります。

ありがとうございます!

答えて

0

私はRouteTable.Routes無視路線に新しいエントリを追加することについては行くだろう:

routes.Ignore("{*allcustomextension}", 
       new { 
        allcustomextension = @".*\.ext(/.*)?" 
       }); 

これはhandlerは、物理的なリソースとして呼び出されるようになります。

View使用するハンドラのコンテキストからリダイレクトするには:

System.Web.Mvc.UrlHelper.Action("ViewName", "ControllerName"); 
+0

しかし、ハンドヘーダーからコントローラまたはビューにどのようにリダイレクト/転送するのですか? –

0

まず、あなただけのレンダリングができますが、そのカスタムハンドラを必要としないことを考えるようにビューを選択しますコントローラにリダイレクトする必要があります。それが動作しないと、あなたが本当に

とザンダーから無視してルートを組み合わせて、あなたのハンドラからリダイレクトしたい場合はそのような何かを試してみてください

routes.MapRoute("page", "{controller}/{action}.page"); 

(あなたが持っているURL形式を一致させるために何とかそれを変更する必要があります) ​​

Afaik、Server.Transferはasp.netクラシックのみで動作するため、唯一のオプションはリダイレクトです。

関連する問題