2010-12-30 16 views
1

私は最近、コントローラーのロジックを処理した後で、ビューにメッセージを戻すTempDataを発見しました。しかし、私が試して、メッセージをHTMLに渡すと、実際のタグをレンダリングし、ページがレンダリングされるときにそれらをHTMLとして解釈しません。TempDataを使ってhtmlを渡す? [MVC2]

これを回避する方法はありますか、または私のアプローチに欠陥がありますか?ここで

TempData["Message"] = "<span style='color:red;'>There was a problem moving the files.</span>"; 

は、ブラウザに表示されているものです。

<span style='color:red;'>There was a problem moving the files.</span> 

ありがとう!

+0

はあなただけの片側を示しています問題。実際の啓発の部分は、tempdataを抽出して表示する部分です。そのコードを表示できますか? –

+0

私は彼がViewData [] – Keith

+0

を意味しないと仮定します。いいえ、TempDataは私が使っているものです。ビュー側では、単に<%:TempData ["Message"]%>とし​​ましたが、Keithはそれを<%= TempData ["Message"]%>に変更しました。 –

答えて

1

<%:の代わりに<%=を使用すると、文字列をデコードせずに処理できます。

+0

それは働いて、ありがとう! –

0

私はそれが値を自動エンコードするかもしれないと思います。 Server.HtmlDecodeを呼び出してHTMLにデコードする必要があります。

HTH。

0

あなたはこのように、あなたの「ビュー」ファイルにスタイルを変更することができます:あなたはこのようTempDataをにあなたのhtmlをデコードすることができます

@if (TempData["Message"] != null) 
    { 
     <span style="color:Red;"> @TempData["Message"] </span> 
} 
12

@Html.Raw(TempData["Message"].ToString()) 
+0

アラート:null参照例外 – Krekkon

+0

最初にnullをチェックします。下のような答え – JustJohn