URLの拡張子に基づいて異なるコンテンツタイプを返す最も簡単な方法は何ですか?

StackOverflow https://stackoverflow.com/questions/1639261

  •  08-07-2019
  •  | 
  •  

質問

URLの拡張子を変更し、別の形式でモデルを受信できるようにしたい。

e.g。 if

/products/list

製品のリストを含むHTMLページを返し、

/products/list.json

jsonリストでそれらを返します。

注: ASP.NET MVC REST SDK 、フックするのに約5行のコードのみが必要ですが、形式はクエリ文字列パラメーターとして指定されます。つまり、< code> / products / list?format = json これは私が望むものではありません。他のオプションがない場合はこのコードを微調整できますが、車輪を再発明したくありません!

役に立ちましたか?

解決

可能な例を示すブログ記事を書きました。少し複雑ですが、ニーズに合っているかもしれません。

http:// haacked .com / archive / 2009/01/06 / handling-formats-based-on-url-extension.aspx

他のヒント

残りのSDKと組み合わせてルートを使用することができるはずです

Apacheなどをサービスの前にドロップする柔軟性がある場合は、いつでも mod_rewrite は、外部の http://products/list.json http:// products / listに書き換えますか? format = json 。フレームワークでより簡単にレンダリングできます。

&quot; list.json&quot;の代わりに&quot; list / json&quot;を選択できます。次のようなルートを使用します

{controller} / {action} / {id}

その後、ProductController.Listが呼び出され、IDパラメーターが「json」になります。 .List()アクションは、HTMLビューまたはJSONコンテンツを返すかどうかを決定します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top