1

我创建了一个模型类;一个简单的 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>)”的类型参数。尝试明确指定类型参数。

源错误:

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

4

1 回答 1

5

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

那么你需要这样使用EditorFor:

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

参数是一个拉姆达表达式。

编辑:

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

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

编辑 2

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

于 2012-12-04T01:01:49.563 回答