CS0411:无法从用法中推断出方法“System.Web.Mvc.Html.EditorExtensions.EditorFor<>)”的类型参数

ser*_*erg 1 c# html-helper model asp.net-mvc-3

我创建了一个模型类;一个简单的 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; }        
}
Run Code Online (Sandbox Code Playgroud)

在视图中,我想调用并编辑该模型:

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

但我收到错误:

编译错误

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

编译器错误消息:CS0411:无法从用法推断方法“System.Web.Mvc.Html.EditorExtensions.EditorFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>)”的类型参数。尝试显式指定类型参数。

来源错误:

考虑到视图不是类型化到该对象类型的,如何为随机类调用编辑器?

Rom*_*ias 5

在你看来你设置在顶部@model Map.WebUI.Models.ContactModel

那么就需要使用Editor这样的方式:

@Html.EditorFor(x => x.ContactModel())
Run Code Online (Sandbox Code Playgroud)

参数是 Lambda 表达式。

编辑:

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

@Html.Partial("YourContactView", new Map.WebUI.Models.ContactModel())
Run Code Online (Sandbox Code Playgroud)

编辑2

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