3

我从另一个开发人员那里继承了一个笨拙且有缺陷的 MVC 代码库,我正在尝试清理它。一件非常有用的事情是在编译时检查与控制器中的操作方法不对应的链接的工具。

例如,您可以编写如下操作方法:

public ActionResult InsertAccount(string Name)

并且可能有一个看起来像这样的链接:

/SomeController/InsertAccount?Id=Foo

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

是否有任何工具可以做到这一点,或者链接构造指南以保持名称安全,所以我可以使用编译器来捕捉这种问题?

4

2 回答 2

5

查看T4MVC

有了它,你可以这样写:

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

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

于 2013-10-04T21:17:28.330 回答
3

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

于 2013-10-04T21:17:55.213 回答