C# 如何避免视图';名字和路径?
如果我调用项目中任何地方的控制器或类,我只使用名称空间和文件名:C# 如何避免视图';名字和路径?,c#,asp.net-core-mvc,C#,Asp.net Core Mvc,如果我调用项目中任何地方的控制器或类,我只使用名称空间和文件名: string vc = nameof(MyProject.Controllers.MySillyController) 非常适合重构如果我重命名MySillyController或移动它的名称空间,我将得到编译时错误 但我不能做同样的事情来欣赏风景 我必须把它串起来: string v = "~/Views/Info/Create.cshtml" 我发现了一个关于助手的问题: string path = (
string vc = nameof(MyProject.Controllers.MySillyController)
非常适合重构如果我重命名MySillyController或移动它的名称空间,我将得到编译时错误
但我不能做同样的事情来欣赏风景
我必须把它串起来:
string v = "~/Views/Info/Create.cshtml"
我发现了一个关于助手的问题:
string path = (helper.ViewDataContainer as WebPageBase).VirtualPath;
但是没有太多的上下文,我也不知道这个helper类实际上是什么。它是来自NuGet软件包、旧的内置功能还是什么?您能解释一下在哪里遇到这种需求吗?除了单元测试之外,我从来没有在另一个控制器或视图之外引用过一个控制器或视图,在这个控制器或视图中,您可以使用诸如
RedirectToAction()
或Html.ActionLink()
之类的辅助方法。它将用于intellisense和编译时突出显示。如果我更改我的视图
文件名和/或文件夹结构,那么我希望突出显示引用该路径的任何内容,以显示它不存在。在MVC中,不要直接调用视图路径(关于重构问题,您是正确的)相反,只需调用控制器/操作方法,例如,在控制器操作方法中,您可以使用:string view=/*some logic*/;返回重定向路由(新建{action=view});不知道助手的情况对不起,你能解释一下你在哪里遇到这种需要吗?除了单元测试之外,我从来没有在另一个控制器或视图之外引用过一个控制器或视图,在这个控制器或视图中,您可以使用诸如RedirectToAction()
或Html.ActionLink()
之类的辅助方法。它将用于intellisense和编译时突出显示。如果我更改我的视图
文件名和/或文件夹结构,那么我希望突出显示引用该路径的任何内容,以显示它不存在。在MVC中,不要直接调用视图路径(关于重构问题,您是正确的)相反,只需调用控制器/操作方法,例如,在控制器操作方法中,您可以使用:string view=/*some logic*/;返回重定向路由(新建{action=view});不知道帮手的事对不起。