13

私の剃刀ビューでは、@Html.ActionLink を使用してハイパーリンクを表示しています。表示されるテキストはハードコードされています (この場合は「ブランド」)。ビューのモデルは @model IEnumerable です

既存のビュー

@Html.ActionLink("Brand", "Index", new { sortOrder = ViewBag.BrandSortParm })

テキストをハードコーディングする代わりに、 @Html.ActionLink の最初のパラメーターとして @Html.DisplayNameFor を使用したいと考えています。

@Html.ActionLink(@Html.DisplayNameFor(model => model.BRAND_NAME), "Index", new { sortOrder = ViewBag.BrandSortParm })

その方法を教えてください。

4

2 に答える 2

0

ヘルパー クラスを作成できます。

public static class ExtensionMethods
    {
        public static string DisplayName<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)
        {
            var metadata = ModelMetadata.FromLambdaExpression<TModel, TValue>(expression, html.ViewData);
            return metadata.DisplayName;
        }
    }

ビューでクラスへの参照を追加し、それを使用します。

@Html.ActionLink(Html.DisplayName(model=> model.BRAND_NAME), "Index", new { sortOrder = ViewBag.BrandSortParm })
于 2015-08-23T12:25:35.367 に答える