2

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

例如,假设我们有一个名为LayoutMainPartialViewsController的控制器,并且在这样的控制器中,我们有一个Header输出位于的 Header Partial View的方法/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");

如果由于某种原因,将名为的方法重命名HeaderHeader2,则不会给出编译时错误,而只会给出运行时错误。

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

另一方面,调用类似的东西是否有意义?

@(new LayoutMainPartialViewsController().Header())

上面的方法返回一个ActionResult需要转换为 String 的方法,方法相同Html.Action

这样,如果我们更改HeaderHeader2<MvcBuildViews>true</MvcBuildViews>在 csproj 中设置,则会在编译时提供错误。

4

1 回答 1

2

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

这完全符合我的要求,并消除了“魔术字符串”的使用,而不是强类型标识符。<MvcBuildViews>true</MvcBuildViews>如果设置为 true ,即使在视图中也会提供编译时错误。

感谢@StuartLC 的提示!

于 2013-01-16T14:30:15.403 回答