如何编写仅匹配HTML文件名的路由?

时间:2011-07-06 18:17:08

标签: asp.net-mvc

我有一个ASP.Net MVC 2应用程序,它提供静态HTML文件作为actionresult

Content(htmlString);

此HTML包含其中的相关链接。即/absdk123.html?t1=somevalue&t2=someothervalue

我的路线应该与这些HTTP请求相匹配?我试过这个:

 routes.MapRoute(
              "LinkRoute", // Route name
              "{html}", // URL with parameters
              new { controller = "Home", action = "ResolveLink"} // Parameter defaults
          );

在动作“ResolveLink”中,字符串参数始终为“null”。如何编写正确处理这些链接的路由?

   public ActionResult ResolveLink(string htmlFileName)
        {
            //test param
            return Content(htmlFileName);
        }

谢谢!

2 个答案:

答案 0 :(得分:2)

试试这个:

routes.MapRoute(
                "LinkRoute", // Route name
                "{htmlFileName}", // URL with parameters
                new { controller = "Home", action = "ResolveLink"} // Parameter defaults
               );


public ActionResult ResolveLink(string htmlFileName)
{
   //test param
   return Content(htmlFileName);
}

答案 1 :(得分:1)

    routes.MapRoute(
       "LearningModuleLessonRoute", // Route name
       "{html}.html", // URL with parameters
       new { controller = "Home", action = "ResolveLink" }// Parameter defaults
   );

这实际上会匹配格式/{filename}.html的任何请求。 我没有意识到文件扩展名可以包含在路由中。