razor – MVC3到MVC4 RTM手动升级问题:@在此关键字前面抛出错误
发布时间:2020-12-16 06:22:27 所属栏目:asp.Net 来源:网络整理
导读:我有一个MVC3项目,其中包含以下代码,它们运行得很好: @if (this.Model.ShowAddButton){ @this.Html.ActionLink("Add","Add")} 我们的团队有一个编码指南,所有本地方法调用都需要以此为前缀.到目前为止,这在MVC3中运行得很好. 我使用here的指导手动将项目升
我有一个MVC3项目,其中包含以下代码,它们运行得很好:
@if (this.Model.ShowAddButton) { @this.Html.ActionLink("Add","Add") } 我们的团队有一个编码指南,所有本地方法调用都需要以此为前缀.到目前为止,这在MVC3中运行得很好. 我使用here的指导手动将项目升级到MVC4.现在上面的代码错误输出以下消息: Unexpected "this" keyword after "@" character. Once inside code,you do not need to prefix constructs like "this" with "@". 我认为错误信息具有误导性.这意味着这样做是合法的,但不是必要的.我故意这样做,即使我知道不需要遵守编码指南.解析器失败的事实,消息应该指示一旦内部代码,你不能加前缀….我明白你不能在嵌套代码块中使用@,而问题不在于@符号,而是使用这个.将此添加到语句不会影响调用的结果,所以我不明白为什么它会抛出异常.我可以通过删除此问题来解决此问题: @if (this.Model.ShowAddButton) { @Html.ActionLink("Add","Add") } 但这样做会与我们的编码指南相冲突.所以我的问题是,这是在MVC4中故意改变的东西(因为它在MVC3中工作得很好).或者这是MVC4中的错误?如果我删除if块,我仍然可以使用this关键字. @this.Html.ActionLink("Add","Add") 解决方法
这实际上是MVC4中的
bug.提交了
report.
两个解决方案是: @if (this.Model.ShowAddButton) { @Html.ActionLink("Add","Add") } 要么 @if (this.Model.ShowAddButton) { @(this.Html.ActionLink("Add","Add")) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET Web Forms 4.5模型绑定,其中模型包含一个集合
- ASP.NET连接字符串到本地SQL Server数据库,使用web.config
- 实体框架 – EF 7中的db.database.ExecuteSQLCommand等效项
- asp.net-mvc-3 – 实体框架乐观并发异常未发生
- 我可以在同一解决方案中拥有多个ASP.Net网站吗?
- asp.net-mvc-3 – 将数据从Action传递给另一个Action
- asp.net-mvc – 未找到或构造错误的路由
- asp.net – .net网络应用程序中的异常处理
- asp-classic – 在经典的asp-reposting表单上捕获SQL注入会
- ASP.NET隐藏字段与不可见的文本框
推荐文章
站长推荐
- 如何在Vista上的IIS7下调试ASP.NET应用程序?
- ASP.NET Core 1 RC2 Web应用入门点
- 初探CSRF在ASP.NET Core中的处理方式
- 使用ASP.NET 2.0处理过期会话的最有效方法是什么
- asp.net-mvc – 在ASP.NET MVC中重定向后发布
- asp.net – 是否有可能拒绝通过Microsoft Ajax M
- asp.net – WCF与Web-api平台中的数据和事务
- asp.net-mvc – 如何在启动应用程序之前在system
- asp.net-mvc-2 – 为什么mvc Html.HiddenFor不渲
- asp.net-mvc – 用于MVC开发的Visual Studio 201
热点阅读