0

MVC 3 プロジェクトの Html ヘルパーを作成しています。

「@Html.ActionLink(xxxxx)」のようにMvcHtmlStringを返したいのですが、何と書けばいいですか?

現在、私はこのコードを持っています

        public static MvcHtmlString SetFeaturedFor<TModel, TValue>(this HtmlHelper<TModel> htmlHelper,Expression<Func<TModel, TValue>> expression)
    {
        var isFeatured =Convert.ToBoolean(ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData).Model.ToString());

        string result = "Html.ActionLink(Delete, DeleteComment, Admin, new { Id = @thisComment.CommentId }, null)";

        return MvcHtmlString.Create(result);
    }

文字列全体を返します....しかし、レンダリングされた文字列が必要です。それで、私は何をすべきですか?みんな、ありがとう。

アップデート

これで直帰できるらしい

以下のコードを参照してください

        public static MvcHtmlString SetFeaturedFor<TModel, TValue>(this HtmlHelper<TModel> htmlHelper,Expression<Func<TModel, TValue>> expression)
    {
        var isFeatured =Convert.ToBoolean(ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData).Model.ToString());

        string indicatorText = (isFeatured) ? "Unset Featured" : "Set Featured";

        return htmlHelper.ActionLink(indicatorText, "SetFeaturedIncident", "Admin", null, null);
    }

System.Web.Routing 名前空間をインポートする必要があります。

4

1 に答える 1

3

引用符 (コードを文字列に格納するだけでなく、関数を呼び出したい) と@(とにかく C# ではなく Razor です) を削除します。Html(おそらく) 拡張メソッドでヘルパー パラメーターを呼び出したものに変更する必要がある場合があります。

また、Html.ActionLinkすでに返さMvcHtmlStringれているので、 の直後に置くことができますreturn

于 2012-04-28T23:20:08.547 に答える