2010-12-10 12 views

答えて

15

アクションメソッドで異なるコンテンツタイプを設定する必要があります。私はちょうどそれをテスト動作します

public ActionResult MyAction() { 
    Response.ContentType = "something"; 
    return View(); 
} 
+0

をああ...私はグーグル経由でこれを見つけたが、少数の人々は、これは動作しませんでしたと言いました。素早く答えてくれてありがとうmarcind :) – kidoman

+0

1つの質問に続きます...私はコントローラーやビューでそれを行うべきですか? @ {Response.ContentType = "..."; }私はそれがビューの方が良いと思う。 – kidoman

+1

あなたが懸念の原理を分かち合うなら、私はこの見方が間違った場所であると主張します。ビューの役割は、出力ストリームへの応答をレンダリングすることです。私は個人的には、それが一度限りのものならば、上記のような行動方法でそれを行うでしょう。カスタムコンテンツタイプが必要な複数のビューがある場合、 'ViewResult'から派生し、' View() 'の代わりにそれを返す独自のクラスを作成します。しかし、このコードをビュー自体に書くことができるので、最終的には好みの問題になります。最終的には、あなたの仕事は何をするのかをやるべきです:) – marcind

13

、また、あなたのCSHTMLに次の行を追加することができます。

@{ 
    ViewBag.Title = "Home Page"; 
    Response.ContentType = "application/javascript"; 
} 

それをちょうど:それは次のようになりますように

Response.ContentType = "application/javascript"; 

変更を希望する場所によって異なります。

0

はこれを使用します。

return Content(json, "application/json"); 
関連する問題