gpt4 book ai didi

asp.net-mvc-3 - 是否有一种自动方法可以在 MVC 中查找未使用的 View ?

转载 作者:行者123 更新时间:2023-12-03 18:00:12 25 4
gpt4 key购买 nike

有谁知道找出项目中未使用的 View 的方法?有或没有 Resharper。
任何比写下所有 View 并通过所有 Controller 并手动检查更容易的想法都值得赞赏:)
谢谢

最佳答案

使用 ReSharper,您可以右键单击 Razor View 并查找用法,但您必须手动完成并重复所有 View (除非您可以连接到 ReSharper 的 API 并自动执行它)。

View 的问题当然是它们是基于 View 引擎中定义的约定的后期绑定(bind),在默认的 RazorViewEngine 的情况下。它在 ~/Views/{Controller}/{Action} 中寻找对应的 View 和 ~/Views/Shared/{Action} .因此,在设计或编译时很难分辨出哪些 View 、部分和模板从未使用过。

您可能会从相反的角度接近它:找出正在使用的 View 。然后将此列表与项目中的所有 View 进行比较,评估结果(手动和使用 ReSharper Find Usages)并在最终删除它们之前确认它们确实没有被使用。

要查找正在使用的 View ,您可以自定义 RazorViewEngine 以在每次加载 View 时记录 CreateViewFindPartialView ,例如

public class LoggingRazorViewEngine : RazorViewEngine
{
protected override IView CreateView(
ControllerContext controllerContext,
string viewPath,
string masterPath)
{
LogManager.GetLogger("").Debug(viewPath);
return base.CreateView(controllerContext, viewPath, masterPath);
}
}

在 global.asax.cs 中配置它
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new LoggingRazorViewEngine());

然后提取记录的唯一 View 路径列表,以与您的项目 View 进行比较。涉及一些努力,但如果您有很多未使用的 View 使项目困惑,则可能值得。

关于asp.net-mvc-3 - 是否有一种自动方法可以在 MVC 中查找未使用的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8206846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com