4

System.Web.Mvcには、ビュー内のデータ型に関連付けられた編集コントロールをレンダリングするEditorForというメソッドを含むHtmlHelperがあります。

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を取得する方法を誰かが説明できますか?

4

1 に答える 1

1

ModelMetadataを使用する必要があります。

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

その後、プロパティから値を取得できmetadata.Modelます。

于 2012-06-27T15:13:12.837 に答える