私は長い間グーグルをしてきましたが、必要なものがまったく見つかりませんでした。これが私たちのシナリオです。
Razor を使用した MVC4 アプリがあります。ある画面では、Telerik Editor コントロールを使用してテキストと画像を保存しています。これらは HTML としてフォーマットされ、データベースに保存されます。画像は byte[] データとして保存され、html src の「パス」は個別のファイル名で更新されます。
後でユーザーが来て、データを表示したいと考えています。画像はすべてデータベースに保存されるため、バイト配列を画像に変換して Razor ビューで表示するにある例を使用して、HTML のタグを Url.Action のタグで更新し、そのすべてをレンダリングできると考えました。 HTML を画面に表示します。
イメージタグが置き換えられた後に動的に生成された html コードのサンプルは次のとおりです。
<p>testing the image blah</p><p><img src="@Url.Action("getImg", "Responses", new { id = 1 }) " alt="Response Image" /> </p>
しかし、HTML.Raw(Text) を使用すると、画像が処理されません。そのイメージタグをビューにコピーするだけでうまくいきます。
私の質問は、View で Razor 構文コードを使用して動的に作成された HTML を適切にレンダリングするにはどうすればよいですか?
************** 詳細はこちら **********
私がやっていることを明確にするのに役立ついくつかの詳細。Response と ResponseImages の 2 つのモデルがあります。
public class Response : TrackableBase
{
[Key]
public int ResponseId { get; set; }
public string Subject{ get; set; }
[MaxLength]
public string Text { get; set; }
public virtual ICollection<ResponseImage> ResponseImages { get; set; }
}
public class ResponseImage : TrackableBase { [キー] public int ResponseImageId { get; 設定; }
public int ResponseId { get; set; }
[ForeignKey("ResponseId")]
public virtual Response Response { get; set; }
public string FilePath { get; set; }
public string FileName { get; set; }
public string FileExtension { get; set; }
public byte[] Image {get; set;}
}
Response.Text は、Telerik エディターからの HTML を保存します。HTMLAgilitypack を使用して HTML 内のすべての画像をループし、これらから ResponseImage レコードを作成します。ResponseImage.FilePath は、Response.Text に格納されている HTML コードへのリンクとして使用するものです (すべての画像は個別の名前/パス)。
Details.cshtml 画面で、Response.Text の詳細を表示したいと考えています。データベースから、私の Response.Text は次のようになります。
<p>hjjk</p><p>
<img alt="" height="144" src="/Content/Editor_Images/UserFiles/JKULBIDA/Images/Koala_635019802303066655.jpg" width="164"></p>
しかし、ファイル システムではなくデータベースに画像を保存しているため、再び HTMLAgility パックを使用し、@Url.Action を使用するための Razor 構文ですべての画像タグを更新します。私の新しいHTMLは次のようになります
<p>hjjk</p><p><img src="@Url.Action("getImg", "Responses", new { id = 4 }) " alt="Response Image" /> </p>
最後に、自分のビューでデータを表示したいだけでなく、HTML も適切にフォーマットしたいと考えています。だから私は @Html.Raw(Model.Text) を呼び出しますが、イメージタグは機能しません:(
***** 更新終了 ****
私はこれに非常にこだわっているので、前もって感謝します。