ContentResult最近、返す代わりに使用する理由を尋ねられましたstring。残念ながら、「それがベスト プラクティスです」よりも適切な答えを出すことはできませんでした。
誰かがより良い答えを持っていますか?
質問をよりよく理解するために。違いは何ですか?
public ActionResult Foo(){
return Content("Some string");
}
public string Bar(){
return "Some string";
}
ContentResult最近、返す代わりに使用する理由を尋ねられましたstring。残念ながら、「それがベスト プラクティスです」よりも適切な答えを出すことはできませんでした。
誰かがより良い答えを持っていますか?
質問をよりよく理解するために。違いは何ですか?
public ActionResult Foo(){
return Content("Some string");
}
public string Bar(){
return "Some string";
}
2 つの主な利点:
ContentEncodingプロパティを介してコンテンツのエンコーディングを指定できますContentTypeプロパティを介してコンテンツ タイプ (つまり、「text/html」) を指定できます。また、OO クリーンにしたい場合は、MVC パイプラインを実行するためのコマンドを提供することで、すべての派生クラスContentResultと共にコマンド パターンに従います。ActionResultExecuteResult
更新: 2020 年 11 月 19 日 元のコマンド パターン リンク (リンク切れ) が機能しなくなったため、同様の Microsoft ドキュメントを参照するように更新しました。また、コマンド パターンの詳しい説明については、このリンクを参照してください。
ContentResult を返すと、アプリケーションの保護に役立ちます。
たとえば、アプリケーションがユーザーからの入力を許可している場合、悪意のあるユーザーが JavaScript テキストを解析しようとする可能性があります。これにより、アプリケーションで JavaScript が実行されなくなります。
私が知っている1つの違いは次のとおりです。
コンテンツは、必要に応じて引用符なしで結果を返します。
文字列は常に引用符で結果を返します。