加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何从视图中检索传递给我的自定义EditorFor的对

发布时间:2020-12-16 09:37:04 所属栏目:asp.Net 来源:网络整理
导读:System.Web.Mvc有一个 HtmlHelper,它包含一个名为EditorFor的方法,该方法呈现与视图中的数据类型相关联的编辑控件. 我试图通过扩展ASP.NET MVC 2 HtmlHelper来创建自己的EditorFor方法.我有以下内容: public static string EditorForNewTModel,TProperty(th
System.Web.Mvc有一个 HtmlHelper,它包含一个名为EditorFor的方法,该方法呈现与视图中的数据类型相关联的编辑控件.

我试图通过扩展ASP.NET MVC 2 HtmlHelper来创建自己的EditorFor方法.我有以下内容:

public static string EditorForNew<TModel,TProperty>(this HtmlHelper<TModel> helper,Expression<Func<TModel,TProperty>> item)
    {
        string value = "";
        string name = item.ToString(); // THIS IS CORRECTED IN MY COMMENT TO THE ANSWER BELOW!
        Type type = typeof(TProperty);

        if (type == typeof(int) || type == typeof(int?) || type == typeof(double) || type == typeof(double?) || type == typeof(decimal) || type == typeof(decimal?) || type == typeof(float) || type == typeof(float?))
        {
            return helper.TextBox(name,value,new { @class = "number" }).ToString();
        }
        else
        {
            return helper.TextBox(name,value).ToString();
        }
    }

任何人都可以解释我如何检索从视图传递给它的对象属性的VALUE?

解决方法

您需要使用ModelMetadata:

ModelMetadata metadata = ModelMetadata.FromLambdaExpression(item,helper.ViewData);

然后,您可以从metadata.Model属性中获取值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读