Html.DisplayFor Ошибка компиляции - MVC 2 - PullRequest
3 голосов
/ 05 января 2012

Я получаю следующую ошибку:

The type arguments for method 'System.Web.Mvc.Html.DisplayExtensions.DisplayFor<TModel,TValue>(System.Web.Mvc.HtmlHelper<TModel>, System.Linq.Expressions.Expression<System.Func<TModel,TValue>>, string)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

Вот мой частичный вид:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyApp.Data.Person>" %>
<fieldset>

    <legend>Information</legend>

    <div class="display-label">ID</div>
    <div class="display-field"><%: Model.ID %></div><br />

    <div class="display-label">Name</div>
    <div class="display-field"><%: Model.Name %></div><br />

    <div class="display-label">DOB</div>
    <div class="display-field"><%: String.Format("{0:g}", Model.DOB) %></div><br />


    <div class="display-label">On Alert</div>
    <div class="display-field"><%: Html.DisplayFor(Model.OnAlert, "FormBoolean") %></div><br />

    <div class="display-label">Deactivated</div>
    <div class="display-field"><%: Model.Deactivated %></div><br />

</fieldset>

Вот мой шаблон отображения FormBoolean:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Boolean>" %>
<div class="formValueShort"><%= Html.Encode(Model ? "Yes" : "No") %></div>

Может кто-нибудь пролить свет на это? Я также пробовал «LabelFor» (без «FormBoolean»), HiddenFor, EditorFor - все выдают одно и то же сообщение. Это странно, потому что я использовал их в своем проекте, поэтому я не уверен, почему он застрял на этом конкретном.

Дайте мне знать, если мне нужно предоставить больше информации!

1 Ответ

8 голосов
/ 05 января 2012

Первый параметр DisplayFor - это лямбда-выражение . Вам нужно позвонить так:

<%: Html.DisplayFor(m => m.OnAlert, "FormBoolean") %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...