Asp.net mvc ASP.NETMVC操作方法在HTML文件中的编译时错误

Asp.net mvc ASP.NETMVC操作方法在HTML文件中的编译时错误,asp.net-mvc,razor,asp.net-mvc-4,Asp.net Mvc,Razor,Asp.net Mvc 4,如果通过使用Html.action,控制器中没有可用的操作方法,是否有任何方法可以产生编译时错误 例如,假设我们有一个名为LayoutMainPartialViewsController的控制器,在这个控制器中,我们有一个方法Header,它输出位于/Views/Shared/PartialViews/_Header.cshtml public class LayoutMainPartialViewsController : Controller { // // GET: /La

如果通过使用
Html.action
,控制器中没有可用的操作方法,是否有任何方法可以产生编译时错误

例如,假设我们有一个名为
LayoutMainPartialViewsController
的控制器,在这个控制器中,我们有一个方法
Header
,它输出位于
/Views/Shared/PartialViews/_Header.cshtml

public class LayoutMainPartialViewsController : Controller
{
    //
    // GET: /LayoutMainPartialViews/

    public ActionResult Header()
    {
        return PartialView("/Views/Shared/PartialViews/_Header.cshtml");
    }

}
然后,为了包含这样的局部视图,我们将在Razor中调用

@Html.Action("Header", "LayoutMainPartialViews");
如果出于某种原因,将名为
Header
的方法重命名为
Header2
,则不会给出编译时错误,只给出运行时错误

我希望能够有编译时错误,以尽量减少运行时错误,因为它们更难识别

从另一个角度讲,把这样的东西叫做

@(new LayoutMainPartialViewsController().Header())
上面的方法返回一个
ActionResult
,它需要像
Html.Action
一样转换为字符串

这样,如果我们将
Header
更改为
Header2
,并且csproj中有
true
,则编译时会出现错误。

是ASP.NET MVC应用程序的T4模板,它创建了强类型帮助程序,在许多地方消除了文字字符串的使用

这正是我所需要的,并且消除了与强类型标识符相反的“魔术字符串”的用法。如果
true
设置为true,则即使在视图中也会提供编译时错误


谢谢@StuartLC的提示

我构建了一个自定义工具,对assebmlies进行静态分析以找到控制器,并构建一个新的静态类型,该类型具有映射到每个生成操作的字符串属性,然后使用该类型而不是字符串。如果删除或重命名某个操作,则从该工具重新生成后会生成编译时错误。我不知道这是否是您的一个选项,但对于我的小型ish mvc3项目,它工作正常。@Html.RenderPartial()是我用于渲染局部视图的方法…请查看并消除神奇字符串。@RichardA.,我使用Action,因为我需要缓存局部视图