MVC 性能:设置视图名称与将其留空

本文关键字:性能 设置 视图 MVC | 更新日期: 2023-09-27 18:33:36

我一直想知道在控制器的 API 中定义视图名称是否比允许 MVC 自动找到它们更明智?

例如

public ActionResult Test() { return View("Test"); }
public ActionResult Test() { return View(); }

问这个问题是因为我认为当名称未设置时,ASP.Net MVC 必须进行一些搜索(不确定它是否在可用页面上使用索引)以及使用反射来确定 API 的名称并尝试找到匹配的视图。但是硬编码的情况只是告诉编译器要获取什么。所以,只是想确定这在多大程度上是正确的。

MVC 性能:设置视图名称与将其留空

不涉及真正的性能损失,因为当未提供视图名称时,框架会从当前RouteData中提取它(该已经可用并实例化 - 不涉及反射)。

从源头:

if (String.IsNullOrEmpty(ViewName))
    ViewName = context.RouteData.GetRequiredString("action");

按照惯例,这没有任何性能可以提高......MVC会寻找<ControllerName>'<ActionName>.cshtml(这是惯例)。

如果您正在寻找性能提升,请查看捆绑 CSS/JS 文件、缓存策略、优化图像和使用 AJAX + WebAPI