gpt4 book ai didi

c# - MVC html 助手如何使用表达式获取对象属性

转载 作者:可可西里 更新时间:2023-11-01 03:00:12 24 4
gpt4 key购买 nike

例如:

Html.TextBoxFor(x => x.ModelProperty)

如果我要将这样的表达式作为方法参数,我将如何从表达式中获取引用的属性?我在表达式方面的经验有些有限,而且根据我所知道的,我不明白它是如何工作的。

最佳答案

您可以像这样轻松获取属性名称:

var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
var propName = metadata.PropertyName;

或者您可以获得属性及其属性:

MemberExpression memberExpression = (MemberExpression) expression.Body;
var member = memberExpression.Member as PropertyInfo;
var attributes = member.GetCustomAttributes();

例如,您可以编写一个简单的方法来生成这样的输入元素:

public static MvcHtmlString TextboxForCustom<TModel, TResult>(this HtmlHelper<TModel> html,
Expression<Func<TModel, TResult>> expression)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
var propName = metadata.PropertyName;

StringBuilder sb = new StringBuilder();
sb.AppendFormat("<input type=\"text\" id=\"{0}\" />", propName);

return MvcHtmlString.Create(sb.ToString());

}

看看my answer在这里。

关于c# - MVC html 助手如何使用表达式获取对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21172443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com