我有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。
这个问题和答案有助于达到我需要的概念。