2010-05-07 41 views
8

我正在开发一个新的ASP.NET MVC 2.0应用程序并希望使用新的ASP.NET 4编码块。HTML编码块 - 无效的表达术语':'

我的视图代码包含<%: Model.ActivityName %>但Visual Studio是报告:

Unexpected token

:(结肠癌)的位置。当我运行该应用程序时,出现以下编译错误:

Compiler Error Message: CS1525: Invalid expression term ':'

我在想什么?

欢迎任何帮助/建议。

+1

哪个版本的VS你在做这个? – 2010-05-07 16:24:51

+0

VS 2008.我创建了我的应用程序作为MVC 2.0应用程序。这不是自动使用ASP.NET 4吗? – 2010-05-07 16:26:05

+0

@Sam:显然,2008。 – SLaks 2010-05-07 16:26:11

回答

13

此功能是新的ASP.Net 4.0,这又新Visual Studio 2010中

在早期版本中,你应该写

<%= Html.Encode(Model.ActivityName) %> 
+0

谢谢Schabse。我完全忽略了我可能需要在VS 2010中开发这个想法。非常感谢。 – 2010-05-07 16:40:53

+0

你不需要使用VS2010来使用ASP.Net MVC。 – SLaks 2010-05-07 16:42:42

+0

是的,我知道。我只是想能够使用代码块功能。这是一个全新的项目,所以我想使用最新的东西,我可以。我的MVC 1项目已于2008年全部完成 – 2010-05-07 17:21:04

1

正如已经指出的那样,你需要使用VS的正确版本。如果你不能,你需要更改所有的代码来使用Html.Encode方法Phil Haack had a post about doing the opposite,这可能会有用。

不,我已经把它系好,但反向搜索和替换VS应该像

\<\%:b*{[^%]*}:b*\%\> 

替换

<%:= Html.Encode\(\1 \) %> 

或东西接近。就像我说我目前没有IDE来测试,那么在您将整个项目运行之前先尝试一下。

+0

Cheers Sam并感谢您的博客链接。我昨天刚刚读到这件事。 :) – 2010-05-07 16:42:46

5

听起来像目标框架未设置为.NET Framework 4.0。

为此,在解决方案资源管理器中,右键单击项目根目录并在上下文菜单中选择属性。

在应用程序选项卡中,您应该看到Target Framework的下拉菜单。将其更改为.NET Framework 4.0。

尝试并编译以查看错误是否消失。

+0

宾果!那为我做了。我一直在研究3.5中的另一个项目,当我开始新的解决方案时,这个项目陷入困境。谢谢DevDave! – kdmurray 2010-07-17 06:00:58