"在MVC3中,方法'LabelFor'没有重载需要2个参数"

Kir*_*rst 5 asp.net-mvc asp.net-mvc-3

我正在运行ASP.NET MVC 3,我正在查看模型的编辑视图.我有一个FullName属性,我想呈现为"全名".

这是违规行:

<div class="display-label">
    <%: Html.LabelFor(model => model.FullName, "Full name") %>
</div>
Run Code Online (Sandbox Code Playgroud)

现在intellisense 表明存在重载 - 有两个签名,第一个只接受表达式,第二个接受表达式和要显示的字符串.然而,当我浏览页面时,我得到了标题异常('无过载......').

任何人都有使用这个重载的任何成功,以及对我可能缺少什么的任何建议?


更新:我尝试重新安装MVC3无济于事.但是我在错误页面的编译器输出中注意到了这一点:

c:\Windows\assembly\GAC_MSIL\System.Web.Mvc\2.0.0.0__31bf3856ad364e35\
    System.Web.Mvc.dll: (Location of symbol related to previous error)
Run Code Online (Sandbox Code Playgroud)

这告诉我,我使用的是MVC 2,而不是MVC 3.

我错误配置了什么,或者为什么我的IIS使用MVC 2而不是MVC 3?我怎样才能解决这个问题?

小智 8

如果这是一个MVC 2项目,您应该检查您的Web配置.

您可能在项目参考中引用了DLL的正确版本,但在运行时在Web配置中引入了2.0.0.0 ...?

http://blog.devlpr.net/2010/07/27/upgrading-an-asp-net-mvc-2-project-to-asp-net-mvc-3/

在我的MVC3应用程序中:

<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Run Code Online (Sandbox Code Playgroud)