HTML 编码块 - 无效的表达式术语 ':'
Posted
技术标签:
【中文标题】HTML 编码块 - 无效的表达式术语 \':\'【英文标题】:HTML Encoding Blocks - Invalid expression term ':'HTML 编码块 - 无效的表达式术语 ':' 【发布时间】:2010-05-07 16:21:06 【问题描述】:我正在开发一个新的 ASP.NET MVC 2.0 应用程序并希望使用新的 ASP.NET 4 编码块。
我的视图代码包含 <%: Model.ActivityName %>
但是 Visual Studio 报告:
意外的令牌
在:
(冒号)的位置。当我运行应用程序时,出现以下编译错误:
编译器错误消息:CS1525:无效的表达式术语“:”
我错过了什么?
为任何帮助/建议干杯。
【问题讨论】:
你在哪个版本的VS中做这个? VS 2008。我已将我的应用程序创建为 MVC 2.0 应用程序。这不是自动使用 ASP.NET 4 吗? ASP.Net 4.0 仅支持 VS2010。 是的,我相信你需要 VS2010 【参考方案1】:此功能是 ASP.Net 4.0 的新功能,而后者又是 Visual Studio 2010 的新功能。
在早期版本中,你应该写
<%= html.Encode(Model.ActivityName) %>
【讨论】:
谢谢沙布斯。我完全忽略了我可能需要在 VS 2010 中开发这个的想法。非常感谢。 你不需要使用VS2010来使用ASP.Net MVC。 是的,我知道。我只想能够使用代码块功能。这是一个全新的项目,所以我想尽可能使用最新的东西。我的 MVC 1 项目都是在 2008 年开发的【参考方案2】:听起来目标框架未设置为 .NET Framework 4.0。
为此,在解决方案资源管理器中,右键单击项目根目录并在上下文菜单中选择属性。
在应用程序选项卡中,您应该会看到 Target Framework 的下拉菜单。将此更改为 .NET Framework 4.0。
尝试编译以查看错误是否消失。
【讨论】:
宾果游戏!那是为我做的。我一直在 3.5 中从事另一个项目,但当我开始新的解决方案时,它就卡住了。感谢 DevDave!【参考方案3】:正如已经指出的,您需要使用正确版本的 VS。如果不能,并且需要更改所有代码以使用Html.Encode
方法Phil Haack had a post about doing the opposite,这可能很有用。
不是我绑定的,但是VS中的反向搜索和替换应该是这样的
\<\%:b*[^%]*:b*\%\>
替换为
<%:= Html.Encode\( \1 \) %>
或类似的东西。就像我说的,我目前没有要测试的 IDE,所以在你在整个项目中运行它之前先尝试一下。
【讨论】:
干杯山姆,感谢博客链接。事实上,我昨天才读到这个。 :)以上是关于HTML 编码块 - 无效的表达式术语 ':'的主要内容,如果未能解决你的问题,请参考以下文章