是否有用于MVC链接的编译时间检查的工具?

时间:2013-10-04 21:14:45

标签: asp.net-mvc

我从另一个开发者那里继承了一个kludgy和buggy MVC代码库,我正在尝试清理它。有一点非常有用的是在编译时检查与控制器中的操作方法不对应的链接的工具。

例如,你可以编写一个这样的动作方法:

public ActionResult InsertAccount(string Name)

并且可能存在某个看起来像这样的链接:

/SomeController/InsertAccount?Id=Foo

在此过程中,参数已从“Id”更改为“Name”,这会破坏链接。如果所有内容都在C#中,编译器会捕获它,但由于链接是从字符串生成的,因此无法检测到这样的更改。

是否有任何工具可以执行此操作,或者链接构造指南以保护名称安全性,因此我可以使用编译器来捕获此类问题?

2 个答案:

答案 0 :(得分:5)

查看T4MVC

有了它,你可以这样写:

@Html.ActionLink("Insert Account", MVC.SomeController.InsertAccount("Foo"))

构建时仍然不会出现编译错误,因为默认情况下不编译视图。但是,您可以在项目文件中更改此项,如here

所示

答案 1 :(得分:3)

JetBrain的resharper提供这种类型的检查。它在处理视图和控制器之间的链接时提供了相当多的帮助,它会在您尝试返回不存在的视图时显示,并在视图中显示它检测到不存在的操作