我有一个 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")