带有通用模型的强类型视图中的“未知元素”

时间:2014-04-15 16:25:04

标签: asp.net asp.net-mvc razor

我在剃刀视图中定义通用模型时遇到问题。每当我使用通用模型时,我都会收到以下警告:

  

未知元素'字符串'或元素不能放在这里。

示例:

@model List<string>

虽然这不会导致任何重大错误,但它仍然非常烦人。有没有办法在剃刀视图中定义一个不会导致此警告的泛型?

环境: VS 2013
ASP.NET MVC v5.1.2
Razor 3.1.1

4 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,事实证明,当我升级到最新版本的MVC时,并非所有配置元素都已正确更新。通过以下方式更改Web.config为我解决了这个问题:

  1. 确保提及System.Web.Mvc的任何一行都将版本号更改为5.0.0.0
  2. 确保提及System.Web.WebPages.Razor的任何一行都将版本号更改为3.0.0.0

答案 1 :(得分:3)

使用泛型类型时我遇到了同样的问题,而web.config中的版本是正确的。我不得不将它包装在代码块中以使警告消失。

@{
    @model List<MyModelType>
}

答案 2 :(得分:2)

出现同样的问题,这是由于从MVC 4升级到5次不完整而导致的问题。来自StriplingWarrior的建议有所帮助,但还需要对root web.config进行以下更改:

<add key="webpages:Version" value="3.0.0.0" />

(从版本2.0.0.0开始)

重新启动Visual Studio。添加这两个步骤最终解决了这个问题。

答案 3 :(得分:1)

使用小写m ...

@model List<string>