Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc &引用;方法'没有重载;Labelforx27;接受2个参数“;在MVC3中_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc &引用;方法'没有重载;Labelforx27;接受2个参数“;在MVC3中

Asp.net mvc &引用;方法'没有重载;Labelforx27;接受2个参数“;在MVC3中,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我正在运行ASP.NET MVC 3,正在查看模型的编辑视图。我有一个FullName属性,我想将其呈现为“FullName” 下面是令人不快的一行: 这表明我使用的是MVC2,而不是MVC3 我有什么配置错误,或者为什么我的IIS会使用MVC 2而不是MVC 3?如何解决此问题?与其这样做,不如使用[DisplayName]属性装饰字段: [DisplayName("Full name")] public string FullName { get; set; } 然后可以使用常规重载: &

我正在运行ASP.NET MVC 3,正在查看模型的编辑视图。我有一个
FullName
属性,我想将其呈现为“FullName”

下面是令人不快的一行:

这表明我使用的是MVC2,而不是MVC3


我有什么配置错误,或者为什么我的IIS会使用MVC 2而不是MVC 3?如何解决此问题?

与其这样做,不如使用
[DisplayName]
属性装饰字段:

[DisplayName("Full name")]
public string FullName { get; set; }
然后可以使用常规重载:

<%: Html.LabelFor(model => model.FullName) %>
model.FullName)%%>
有一个参数包含两个参数

但是你可以试试

 <%: Html.LabelFor(model => model.FullName) %>
方法
LabelFor(HtmlHelper,Expression,String)
是在MVC3.0上引入的

比较


(MVC2.0)

然而,当我浏览到页面时,我 获取有标题的异常('否 重载…')


可能您的IIS上没有激活MVC 3.0。

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

您可能在项目引用中引用了正确版本的DLL,但在web配置中拉入了2.0.0.0,当它运行时

在我的MVC3应用程序中:

<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

您需要确保在项目中引用MVC 3.0。因为这个程序集有一个强名称,所以你要么得到它,要么失败

为此,在Visual Studio中,检查解决方案资源管理器、[项目]、引用,单击System.Web.Mvc,并检查属性网格中的“版本”属性。应该是3.x

如果有,请检查web.config或machine.config,确保MVC2.x上没有强制重定向

为此,请在项目中的所有Web.config文件中,全局并替换MVC版本(将此System.Web.MVC,版本=2.0.0.0替换为此System.Web.MVC,版本=3.0.0.0)

最后,您还可以在根web.config中使用以下代码段强制从2重定向到3:

...
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
      <bindingRedirect oldVersion="2.0.0.0" newVersion="3.0.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>
...
。。。
...

我知道这个选项,但我使用生成的类作为模型;我可以实现这一点,但我的问题是“为什么重载不起作用”。我知道这个选项,但我使用生成的类作为我的模型,这使它不那么简单;我可以实现这一点,但我的问题是“为什么过载不起作用”。@Kirk-yep,这很公平。我还认为不应该绑定到生成的类(我猜是L2SQL/EF),但这是另一个讨论:)。也许@tiagoinu是对的-有些东西没有正确配置-web.config可能?尝试使用其他特定于MVC3的工具,并确保它能够正常工作。谢谢,正如您所建议的那样简单。谢谢-这是一个很好的答案。
public class ModelClass{

..
..

[DisplayName("Full Name")]
public string FullName{
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
...
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
      <bindingRedirect oldVersion="2.0.0.0" newVersion="3.0.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>
...