如果我编写自定义DisplayFor
帮助程序,例如:
public static HtmlString MyDisplayFieldFor<TModel, TValue>(this HtmlHelper<TModel> html,
Expression<Func<TModel, TValue>> expression, object additionalViewData = null)
{
//...
}
如何确定传入其中的字段类型,以便不同类型可以拥有自定义显示逻辑?
例如,我可以使用三种类型的所有方法:
@Html.MyDisplayFieldFor(e=>e.Name) //string
@Html.MyDisplayFieldFor(e=>e.DepartmentSelectList) //SelectList
@Html.MyDisplayFieldFor(e=>e.CupsOfTeaPerDay) // int
在Helper方法中访问此类型信息的最佳方法是什么?
答案 0 :(得分:1)
从表达式
中获取值类型public static HtmlString MyDisplayFieldFor<TModel, TValue>(this HtmlHelper<TModel> html,
Expression<Func<TModel, TValue>> expression, object additionalViewData = null) {
var valueType = typeof(TValue);
//...other code
}
答案 1 :(得分:0)
您无需检查传递值的类型。 ASP.NET MVC允许您创建基于字段类型自动选择的display templates。
您可以为示例中的images_upload_handler: function (blobInfo, success, failure) {
success("data:" + blobInfo.blob().type + ";base64," + blobInfo.base64());
}
创建此模板,并将其放在SelectList
项目文件夹中。
Views/Shared/DisplayTemplates/SelectList.cshtml
这使您可以在视图中保留HTML代码。