我想创建一个自定义方法,以便能够调用它
@Html.PaginationFor(o => o.List)
我开始看反射器,但我不确切知道它在那边做什么。我试过:
public static MvcHtmlString PaginationFor<TModel, TProperty>(this Html<TModel> html,
Expression<Func<TModel, TProperty>> expression)
{
var propertyValue = ????????
return html.Partial("View", propertyValue);
}
如何从表达式中提取属性值以作为局部 View 的模型传递?
最佳答案
public static MvcHtmlString PaginationFor<TModel, TProperty>(
this HtmlHelper<TModel> html,
Expression<Func<TModel, TProperty>> expression
)
{
TModel model = html.ViewData.Model;
var metaData = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
var propertyValue = metaData.Model; // This will be of type TProperty
return html.Partial("View", propertyValue);
}
关于c# - 如何编写自定义@Html.Control For(o => o.Property)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6710917/