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 名前空間をインポートする必要があります。