好的,我对 ASP.NET 4.5 非常陌生(让 PHP 休息一下)并且坚持渲染标签。
我有一个 ViewModel 定义了必要的 Models :
public class TransactionsViewModel {
public IEnumerable<Transaction> Transactions { get; set; }
public IEnumerable<Area> Areas { get; set; }
public IEnumerable<Mistake> Mistakes { get; set; }
...
}
Transaction 只是另一个具有简单属性的模型,现在我想为其中一个 Transaction 属性显示标签。
我的视图具有强类型 TransactionsViewModel
@model AuditSystem.ViewModels.TransactionsViewModel
这意味着 HTMLHelper 在覆盖时具有 <TransactionsViewModel> 类型。
我试图创建的方法原型是:
public static MvcHtmlString LabelFor<TModel, TClass, TValue>(
this HtmlHelper<TModel> helper,
IEnumerable<TClass> model,
Expression<Func<TClass, TValue>> expression,
object htmlAttributes
)
其中 <TModel> 是 TransactionsViewModel(强类型),<TClass> 是(Transaction)
这在尝试调用 helper.LabelFor 时会导致问题,因为它需要 Expression> 的表达式,但我需要传递 Func。
我试图用有效类型重建一个表达式,但在调用 html.labelfor 时卡住了,并且类型转换不起作用。