2016-12-12 6 views
-5

特定のファイル名(ID:myfile.gif)をコントローラアクションとして使用するにはどうすればよいですか?ルート定義はどうですか?ファイル名をコントローラとして許可するアクション

TIA、/ルイス・

+1

あなたが正確に何を求めていますか?私はあなたが何を求めているのかわからないので、これを閉鎖すると投票しています。 – RandomStranger

+0

何をしようとしていますか?すべての静的ファイル要求は通常IISによって処理されます。 – Shyju

+0

ファイルをMVCプロジェクトに入れると、すでにアクセス可能になります。例えば。 'Content' - >' http:// server/Content/myfile.gif'フォルダに置いてください。プロジェクトにファイルが存在しない場合は、@Douglas Gandiniの回答が参考になります。 –

答えて

0

私の答えは、「どのように処理するか/コントローラ/アクションの静的ファイルをマップ」に基づいています。

  • マネージコード
に要求を渡すためにIISに伝えるあなたのweb.configファイル内の新しいハンドラを設定し
  • あなたの行動を指す新しいルートを作成し、あなたの要求
  • を処理するためのアクションを作成します。

    処置:

    [HttpGet] 
    public FileContentResult Index(string FileName) { 
    var content = ... // your file content retrieve logic 
    return File(content, "image/gif"); 
    } 
    

    ルートマッピング:

    routes.MapRoute(
        name: "Image", 
        url: "SomePath/{filename}.gif", 
        defaults: new { controller = "Image", action = "Index" } 
         ); 
    

    ハンドラ:

    <system.webServer> 
        <handlers> 
         <add name="Giffiles" path="*.gif" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/> 
        </handlers> 
    </system.webServer> 
    
  • +0

    完璧に作業しました。 ...今私は私が欲しいものを追跡することができます:電子メール、twitter、linkedin、facebook posts ... – luispedropereira

    関連する問題