0

日付ピッカーフィールドを作成できるように、次のヘルパーを作成しました。

public static MvcHtmlString DatePickerFor<TModel>(this HtmlHelper<TModel> helper, Expression<Func<TModel, object>> property, string minDate = "2012-01-01", string maxDate = "2100-01-01")
    {
        TModel model = helper.ViewData.Model;
        var builder = new TagBuilder("input");
        builder.Attributes.Add("id", "id");
        builder.Attributes.Add("type", "date");
        return MvcHtmlString.Create(builder.ToString());

    }

私がやりたいことは、他の EditorFor または RadioButtonFor フィールドで行うことができるのとまったく同じように、自分のビューから渡したモデル メソッドから ID と名前を生成することです。

ビューでは、次のように呼び出します。

@Html.DatePickerFor(model => model.EntryDate)

その場合、IDと名前を「EntryDate」にしたいと思います。他のメタデータを調べてみhelper.ViewDataましたが、作業できるものに近いものは見つかりませんでした。「モデル メソッド名」という用語が間違っている可能性がありますので、お気軽に訂正してください。

4

1 に答える 1

0

プロパティ名を文字列として取得するには、この SO answerのような use Expressions コードを使用する必要がある場合があります。

アクションがラムダである重要なビットは次のmodel => model.EntryDateとおりです。

var expression = (MemberExpression)action.Body;
string name = expression.Member.Name;
于 2013-06-20T17:58:31.710 に答える