2012-01-04 3 views
3

私は次のエラーを取得しています:ここでHtml.DisplayForコンパイルエラー - MVC 2

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を試しました - すべて同じメッセージを出します。なぜなら、私はこのプロジェクトでこれらを使用していたので、これは奇妙です。

これ以上の情報を提供する必要がある場合はお知らせください。

答えて

8

DisplayForの最初のパラメータはlambda expressionです。あなたは次のように呼び出す必要があります:

<%: Html.DisplayFor(m => m.OnAlert, "FormBoolean") %> 
+1

Ah!とても簡単!長い一日でした!どうもありがとう。時間制限が上がったときに私はあなたの答えを正しいものとしてマークします:) – 109221793

関連する問題