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>)» не могут быть выведены из использования. Попробуйте явно указать аргументы типа.

Ошибка источника:

Как я могу вызвать редактор для случайного класса, учитывая, что представление не строго типизировано для этого типа объекта?


person sergserg    schedule 04.12.2012    source источник


Ответы (1)


На ваш взгляд, вы поставили вверху @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.

person Romias    schedule 04.12.2012
comment
Я явно не хочу, чтобы представление было строго типизировано для этого типа объекта. - person sergserg; 04.12.2012