我试图用以下的陈述:
@Html.Test<ISQL>().Nand()
然而,Razor 在 < before ISQL 时会窒息。
有什么正式的工作吗?
要使用泛型方法,需要转义表达式
@(Html.Test<ISQL>().Nand())
我很欣赏这个“回答”有点晚了,这个问题显然已经得到了令人满意的(和良好的)回答。然而,对于任何未来的访问者到这个网页,如果你想要一个更完整的参考指南,有 刀锋语法简介以及菲尔哈克的非常有用的 剃刀快速参考博客文章。
当我在升级 mvc 时寻找这个“相同的错误”时,我发现了这个问题。
我有:
不起作用:
@{ ViewBag.Title = "Something " + @Model.Title; var something = (IEnumerable<SelectListItem>)ViewBag.Options; }
显然,语法变得更严格了,而且由于您位于@{}块中,所以不应该在 Model 之前添加@。例题。但是代码编辑器上的错误指向了泛型,这让我抓狂。
如果代码中没有 < > ,但只是删除了@from Model,那么它就可以正常工作。标题解决问题。
作品:
@{ ViewBag.Title = "Something " + Model.Title; var something = (IEnumerable<SelectListItem>)ViewBag.Options; }
希望这对大家有帮助
这是关于@字符的,这个示例在升级之前可以工作
@{ string @class = ViewBag.@class; IDictionary<string, object> htmlAttributes = new Dictionary<string, object>(); }
升级后,必须将其分成两个块
@{ string @class = ViewBag.@class; } @{ IDictionary<string, object> attrs = new Dictionary<string, object>(); }
我有一个奇怪的情况下,我有几个任务内的一个 @{ ... }块。
@{ ... }
@{ // ... other assignments (without error) List<string> stringList = new List<string>() // ERROR MESSAGE HERE }
不管我做什么,总会出错,像这样:
使用泛型类型“ List”需要一个类型参数
解决方案 : 我把分配线放到 第二 @{ ... } 博克。
@{ // ... other assignments } @{ List<string> stringList = new List<string>() // WORKS }