在ASP.NET MVC3中,通过路由映射匹配的方式来处理请求,并且默认情况下会在运行时动态生成响应结果。如果希望访问纯静态的页面后不再走路由,则可以选择对应的操作方法前添加OutputCache特性,同时设置Duration为足够长的时间,即可实现。
下面是具体的步骤:
- 在Controller中创建一个操作方法,如下所示:
public ActionResult Index()
{
return View();
}
- 在操作方法上添加OutputCache特性,该特性使得响应结果能够被缓存,从而不再每次请求都需要生成。例如:
[OutputCache(Duration = 86400, VaryByParam = "*", Location = OutputCacheLocation.Any)]
public ActionResult Index()
{
return View();
}
其中,Duration属性指定要缓存的时间,单位为秒;Location属性指定缓存的位置;VaryByParam属性指定根据参数进行缓存(此处表示根据任何参数进行缓存)。
-
添加View模板文件,例如,创建一个名为Index.cshtml的视图模板文件,并添加所需的HTML、CSS、JS等内容。
-
在配置文件Web.config中进行相应的配置,协助提高响应的处理效率,例如:
<system.webServer>
<staticContent>
<clear />
<mimeMap fileExtension=".json" mimeType="application/json" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
</staticContent>
</system.webServer>
在上述配置中,定义了用于指定特定文件扩展名的响应MimeType类型的映射集合。
示例1:如果我们想要访问静态HTML页面(如about.html),添加操作方法:
[OutputCache(Duration = 86400, VaryByParam = "*", Location = OutputCacheLocation.Any)]
public ActionResult About()
{
return View("~/Views/Shared/about.html");
}
其中,View方法指定了所需的视图模板路径。通过该操作方法所生成的响应数据,则会被缓存并提供给后续的请求。
示例2:如果我们想要访问JSON数据文件(如data.json),添加操作方法:
[OutputCache(Duration = 86400, VaryByParam = "*", Location = OutputCacheLocation.Any)]
public ActionResult Data()
{
return Content(System.IO.File.ReadAllText(Server.MapPath("~/data/data.json")), "application/json");
}
其中,Content方法输出所需的JSON数据,并添加了Content-Type头部信息,告知客户端内容的类型,便于客户端进行解析。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET MVC3关于生成纯静态后如何不再走路由直接访问静态页面 - Python技术站