2017-03-04 7 views
0

私はhttp://example.com/Image/Show/CwYDBw8LDwwです。ここでexample.comは私のサイト、Showはイメージコントローラのメソッド、一意のID CwYDBw8LDwwはデータベース内のキーで、別のドメインの別のURLを指します。 Googleの「ホストされた」画像MVC - 私のドメイン上の "短縮された"コードからページ上のイメージを読み込みます(Bit.lyのようにリンクがあります)

これを行う理由は、URLがひどく長く扱いにくくなる可能性があるからです。私は、マークダウン/ HTMLなどのサイトのコンテンツを格納し、のようなものを書くことができるようにしたいのです:

<p>Here is an image of a cat.</p>  
<img src="http://example.com/Image/Show/CwYDBw8LDww"> 

と私は入れているかのように持っている、それはページをレンダリング:

<img src="http://googleusercontent.com/SomeReallyReallyReallyLongImageURL.jpg"> 

をので、データベースにあり値 ":CwYDBw8LDww"、 "http://googleusercontent.com/SomeReallyLongImageURL.jpg"を持つテーブルエントリです。これは、どの「本当に長いURL」がショートコードに属しているかを知る方法です。

「google」URLを画面に表示する方法を知っています。これを返すためにアクションを取得すると、すでにデータベースなどと話すことができます。欠落している部分は/Images/Show?shortcode=CwYDBw8LDwwになりますGoogle画像をページにレンダリングできるように戻します。そして、私がビューでそれをやっていなければならないのかどうか。コンテンツはすでになど

+0

私は今それが働いているので、私は自分自身に質問に答えました。私は「トップレベル」、つまりブラウザがアドレスバーなどに表示するページリダイレクトではなく、Webページに埋め込んだ「イメージ」であることに気づきました。一歩踏み出してHTTPリクエストは、私がそれを解決したレスポンスの "タイプ"が何であれ、本当にリクエストです。 – seventyeightist

答えて

0

として格納されている

@Html.Raw(@Model.ArticleContent) 

私は忍耐と研究のビットで自分自身をそれを解決:

私のビューには、現在のようなものを持っています! Image Controllerに以下を追加しました。 GetURLの()はショートに適用される「長い」URLのデータベースを尋ねる私のデータアクセス層内のメソッドである

public RedirectResult Show(string shortcode) 
{ 
    return Redirect(data.GetURL(shortcode)); 
} 

。 (ショートコードがGetURL()コードに存在しない場合のように扱うので、Show()は有効なURLが与えられているとみなします)

これは、クライアントを再度ポイントする302の一時的なリダイレクトHTTP応答を返します「新しい」(私の例ではGoogle)のURL。

このSO question and answersは、私が必要としていた概念を得るのに役立ちました。

関連する問題