@Html.Actionlink() ヘルパーは<a>
.cshtml ファイルで要素を作成するのに非常に便利ですが、C# 文字列内で要素を構築して、後で HTML 出力で正しくレンダリングすることはできますか?
たとえば、文字列変数に次のような値を割り当てるとします。
Book.ReadMore = "Click @Html.ActionLink(\"this link\", \"About\", \"Home\") to read more.";
次に、次のようなコードを使用して、.cshtml ページを介して (リテラル テキストとリンク) を表示しようとします。
<p>@Model.ReadMore</p>
ブラウザーに表示されるのは、@Html などを含む、入力したとおりの文字列全体だけです。
Click @Html.ActionLink("this link", "About", "Home") to read more.
さて、適切な SoC では、HTML を C# コードに含めることはベスト プラクティスではないことはわかっていますが<a>
、このシナリオで、文字列自体ではなく、適切なリンクを取得することはまったく可能ですか?
編集: 詳細情報- この文字列は、約 20 ~ 30 個の文字列のコレクション内の 1 つの項目にすぎません ( for loop
View で a を使用して表示されます)。これらのアイテムのほんの一握りだけがリンクを必要とします (これはケースごとに異なります)。上記のように、モデル コードで Razor/HTML を使用するのは明らかに良い方法ではないことに同意するので、(可能であれば) 右側のどこかにリンクを構築する柔軟性を与える単純なアプローチを取得しようとしています。 MVC SoC の保守性を維持しながら、
これを行うには、シンプルでありながら保守可能な「正しい」方法が必要です。