超文本标记语言DisplayFor编译错误- MVC 2
本文关键字:MVC 错误 DisplayFor 编译 超文本标记语言 | 更新日期: 2023-09-27 18:19:23
我得到以下错误:
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 -都给出了相同的信息。这很奇怪,因为我在我的项目中使用了这些,所以我不确定为什么它会卡在这个特定的上面。
如果我需要提供更多的信息,请告诉我!
DisplayFor
的第一个参数是lambda表达式。您需要像这样调用:
<%: Html.DisplayFor(m => m.OnAlert, "FormBoolean") %>