1

こんにちは、ASP.NET MVC3 プロジェクトのUrl.Action内部でアクション リンクを使用しようとしています。@Html.Rawがなくてもすべて正常に動作@Html.Rawしますが、画像をページに表示できません。RawHtml.Encode内で使用しようとしていますが、ページに裸の HTML が表示されます。

@Html.Raw(<a href="@Url.Action("ActionName", "Controller", new {id = 1})" target="_blank">
                <img src="@Url.Content("~/Content/Images/simpleImage.png")"/>
            </a>)

正しいコードをレンダリングしない理由はありますか?また、画像のある場所にカーソルを合わせると、次のコードがポップアップ表示されます:sitename.com/Controller/@Url.Action(

私は「それは助けにならない」をシールドしようとしています

編集

このアクション リンクは、データベースからのクエリの一部であり、次のように表示します。

@Html.Raw(model.FieldWithHtmlCharactersInDatabase)
4

4 に答える 4

2

文字列を渡す必要があります。これを試してください

@Html.Raw("<a href='" + @Url.Action("ActionName", "Controller", new {id = 1})' " + target='_blank'>
                <img src='" + @Url.Content("~/Content/Images/simpleImage.png") " + "/>
            </a>")
于 2013-08-26T08:17:20.633 に答える
1

文字列変数を渡して"正しくエスケープする代わりに、これを試してください。

@Html.Raw("<a href=\"" + 
    Url.Action("ActionName", "Controller", new {id = 1}) 
    + "\" target=\"_blank\"><img src=\"" + 
    Url.Content("~/Content/Images/simpleImage.png") + "\"/></a>")

@Html.Rawただし、これで同じ出力が得られるのに、なぜこれが必要なのかわかりません。

<a href="@Url.Action("ActionName", "Controller", new {id = 1})" target="_blank">
    <img src="@Url.Content("~/Content/Images/simpleImage.png")" />
</a>

アップデート

質問を更新した後、DB 文字列から Razor コードを実行しようとしています。StackOverFlow に関するこれらの質問のいくつかをご覧になることをお勧めします。

ASP.net MVC:DB文字列からRazorを実行しますか?

ファイルではなくデータベースからビューをプルする

元の質問は、あなたが望むものとは大きく異なることに注意してください。

于 2013-08-26T08:17:36.470 に答える