42

ContentResult最近、返す代わりに使用する理由を尋ねられましたstring。残念ながら、「それがベスト プラクティスです」よりも適切な答えを出すことはできませんでした。

誰かがより良い答えを持っていますか?

質問をよりよく理解するために。違いは何ですか?

public ActionResult Foo(){
    return Content("Some string");
}

public string Bar(){
    return "Some string";
}
4

6 に答える 6

7

2 つの主な利点:

  • ContentEncodingプロパティを介してコンテンツのエンコーディングを指定できます
  • ContentTypeプロパティを介してコンテンツ タイプ (つまり、「text/html」) を指定できます。

また、OO クリーンにしたい場合は、MVC パイプラインを実行するためのコマンドを提供することで、すべての派生クラスContentResultと共にコマンド パターンに従います。ActionResultExecuteResult

更新: 2020 年 11 月 19 日 元のコマンド パターン リンク (リンク切れ) が機能しなくなったため、同様の Microsoft ドキュメントを参照するように更新しました。また、コマンド パターンの詳しい説明については、このリンクを参照してください。

于 2014-01-16T09:08:32.660 に答える
1

ContentResult を返すと、アプリケーションの保護に役立ちます。

たとえば、アプリケーションがユーザーからの入力を許可している場合、悪意のあるユーザーが JavaScript テキストを解析しようとする可能性があります。これにより、アプリケーションで JavaScript が実行されなくなります。

于 2015-02-09T20:58:56.997 に答える
0

私が知っている1つの違いは次のとおりです。

コンテンツは、必要に応じて引用符なしで結果を返します。

文字列は常に引用符で結果を返します。

于 2013-10-13T23:58:30.597 に答える