CS0411:无法从使用情况推断方法'System.Web.Mvc.Html.EditorExtensions.EditorFor<>)'的类型参数

时间:2012-12-04 00:57:12

标签: c# asp.net-mvc-3 model html-helper

我有一个我创建的模型类;一个简单的POCO课程:

public class ContactModel
{
    [Required]
    public string Name { get; set; }

    [Required]
    public string Email { get; set; }

    [Required]
    public string Message { get; set; }

    [Required]
    public string Work{ get; set; }        
}

在视图中,我想为此模型打电话和编辑:

<div class="contact-form">
    @Html.EditorFor(new Map.WebUI.Models.ContactModel())
</div>

但我收到错误:

  

编译错误

     

描述:编译资源期间发生错误   需要为此请求提供服务。请查看以下具体内容   错误详细信息并适当修改源代码。

     

编译器错误消息:CS0411:方法的类型参数   &#39; System.Web.Mvc.Html.EditorExtensions.EditorFor(System.Web.Mvc.HtmlHelper,   System.Linq.Expressions.Expression&GT;)&#39;   无法从使用中推断出来。尝试指定类型参数   明确。

     

来源错误:

如果视图强烈键入此对象类型,我如何调用随机类的编辑器?

1 个答案:

答案 0 :(得分:4)

在您的视图中,您设置在顶部@model Map.WebUI.Models.ContactModel

然后你需要以这种方式使用Editor:

@Html.EditorFor(x => x.ContactModel())

参数是Lamda Expresion。

修改

好吧,我不知道你不能改变它......所以...我认为你不能使用EditorFor。 但你可以做的是使用PartialView并使用:

@Html.Partial("YourContactView", new Map.WebUI.Models.ContactModel())

编辑2

您也可以使用@Html.Editor(string expression, ViewData data) ...这样您就可以将模型传递给ViewData对象中的编辑器。