e如果通过使用
Html.Action控制器中没有操作方法,有没有办法可以产生编译时错误?
例如,假设我们有一个名为LayoutMainPartialViewsController的控制器,在这样的控制器中,我们有一个方法Header,它输出位于/Views/Shared/PartialViews/_Header.cshtml的Header Partial View.
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一样转换为String.
这样,如果我们将Header更改为Header2并且具有< MvcBuildViews> true< / MvcBuildViews>在csproj中,编译时提供错误.
解决方法
T4MVC是ASP.NET MVC应用程序的T4模板,它创建强类型帮助程序,消除了在许多地方使用文字字符串.
这完全符合我的要求,并删除了“魔术字符串”的使用,而不是强类型标识符.如果< MvcBuildViews> true< / MvcBuildViews>,即使在视图中也提供编译时错误.设置为true.
感谢@StuartLC提示!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。