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



我创建了一个模型类;一个简单的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:方法的类型参数 'System.Web.Mvc.Html.EditorExtensions.EditorFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>)' 无法从使用情况中推断。尝试指定类型参数 明确地。

源错误:

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

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

然后你需要使用编辑器这样:

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

该参数是耐磨达表达式。

编辑:

好吧,我不明白你不能改变它...所以。。。我认为你不能使用编辑器。但是你可以做的是使用PartView并使用:

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

编辑 2

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

最新更新