.NET MVC路由(忽略文件扩展名)

时间:2014-01-23 12:31:39

标签: c# asp.net-mvc azure asp.net-mvc-routing

我想为Azure Blob存储设置代理页。

我希望所有匹配/^MyArea\/Asset\/.*$/的请求都路由到MyArea.IndexController.AssetAction。

public class MyAreaAreaRegistration : AreaRegistration 
{
    public override void RegisterArea(AreaRegistrationContext context) 
    {
        context.MapRoute(
            "MyArea_assets",
            "MyArea/Asset/{resource}",
            new { controller = "Index", action = "Asset"}
        );
    }
}

然后我将在Action中执行以下操作。

public ActionResult Asset(string resource)
{
    // fetch content from Azure Blob Storage and return it.
    return Content(/* some conent */);
}

如果请求为/MyArea/Asset/foo,但如果请求为/MyArea/Asset/foo.txt,则此方法无效。

如何让路由器忽略文件扩展名并将所有内容传递给单个操作?

-

扩展名可以是.txt,.js,.json等。我仍然希望JsonResult重载在应用程序的其他地方工作。

1 个答案:

答案 0 :(得分:2)

  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true">