这个非常有用的方法的签名表明我可以指出一个类型:
public static MvcHtmlString EditorFor<TModel, TValue>(
this HtmlHelper<TModel> html,
Expression<Func<TModel, TValue>> expression
)
...文档非常容易理解地指出 TModel 是"The type of model"。一定是我特别倾向于这种描述对我没有任何意义。我用谷歌搜索了一个解释,但找到了 zilch。
我在一个视图中,@model Website.Models.Product
但想为不同类型的东西创建一个编辑器。我以为我可以:
@Html.EditorFor(@ViewBag.AClassOfTheOtherType)
或者也许(我显然在猜测):
@Html.EditorFor(TheOtherType)
但这不是可接受的语法,所以我想:
@Html.EditorFor(x => x...)
但 lambda 表达式似乎绑定到@model
......所以我想,“啊!”:
@Html.EditoFor<TheOtherType>(...)
但 VS 认为 < 开始一个 HTML 标记并指示我的 EditorFor 调用结束(失败)。
啊啊啊啊!
我该怎么做(如果我真的需要问)?