我有一个有哪些工作就好了下面的一行代码一个MVC3项目:
@if (this.Model.ShowAddButton)
{
@this.Html.ActionLink("Add", "Add")
}
我们的团队有一个编码准则,所有本地方法调用需要用前缀this
。 这已经在MVC3工作就好了,直到如今。
我手动升级的项目MVC4,使用从指导这里 。 现在,上面下面的消息出现了错误的代码:
Unexpected "this" keyword after "@" character. Once inside code, you do not need to prefix constructs like "this" with "@".
我认为错误消息是误导。 这意味着它是合法的,做到这一点,但不是必需的。 我故意这样做,即使我知道这是不是需要遵守编码规则。 解析器失败的事实,该消息应指明Once inside code, you cannot prefix....
我知道你不能使用@
嵌套代码块,这个问题是不是与@
符号,但使用this
。 添加this
的语句不影响调用的结果,所以我不明白为什么它抛出异常。 我可以通过删除解决这个问题this
:
@if (this.Model.ShowAddButton)
{
@Html.ActionLink("Add", "Add")
}
但这样做将与我们的编码准则相冲突。 所以我的问题是,这事在MVC4是故意改变(因为它在MVC3工作就好了)。 或者,这是MVC4的错误吗? 如果我删除了if
块,我仍然可以使用this
关键字。
@this.Html.ActionLink("Add", "Add")