MVC - 从我的域上的"shortened"代码加载页面上的图像(就像 Bit.ly 链接一样)



我有http://example.com/image/show/cwydbw8ldww example.com是我的网站,show是image Controller中的一种方法,唯一的ID cwydbw8ldldww是关键在数据库中,该数据库将指向其他域上的其他URL,例如Google上的"托管"图像。

这样做的原因是URL可能会变得非常漫长而笨拙。我将网站内容存储为Markdown/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/somereallylylongimageurl.jpg"),我知道哪个"真正的long url"是如何属于短的代码。

我知道如何(例如)通过获取返回的操作来将" Google" URL打印到屏幕上,我已经能够与数据库进行交谈,等等。我缺少的部分是让/Images/Show?shortcode=CwYDBw8LDww带来以可以在页面上渲染的方式备份Google图像。以及我是否应该从视图中做到这一点,还是什么。

我的观点当前有类似的东西:

@Html.Raw(@Model.ArticleContent)

内容已经存储为<p>Here is an image of a cat</p>等。

我自己解决了一些耐心和研究!我将以下内容添加到我的图像控制器中。

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

geturl()是我的数据访问层中的一种方法,该方法向数据库询问适用于短代码的"长" URL。(我处理案例,例如GetURL()代码中不存在短代码,因此Show()假设已为其提供了有效的URL。)

这将返回302"临时重定向" http响应,以将客户端重点重点送至'new'(我的示例中的Google)URL。

这个问题和答案有助于达到我需要的概念。

相关内容

最新更新