[英]Passing an url as parameter to controller action
在我的 asp.net mvc 頁面上,我需要渲染存儲在第三方圖像托管服務上的多個圖像。 該服務有一些 api 它返回給我一個圖像網址列表。 在 *.cshtml 文件中具有以下 html 標記:
@foreach (var img in Model.Images)
{
<img src="@img.ImageUrl" />
}
它工作得很好。 但由於某種原因,我不能將 URL 直接用於“src”屬性中的圖像。 接下來,我創建了應該返回圖像的新異步 controller:
public class ImagesController : AsyncController
{
//
// GET: /Images/
public void GetImageAsync(string url)
{
AsyncManager.OutstandingOperations.Increment();
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
AsyncManager.Parameters["response"] = response;
AsyncManager.OutstandingOperations.Decrement();
}
public FileResult GetImageCompleted(WebResponse response)
{
return base.File(response.GetResponseStream(), response.ContentType);
}
}
現在我需要將完整圖像 url 傳遞給我的 controller 操作。
像這樣的東西:
@foreach (var img in Model.Images)
{
<img src="Images/GetImage/**@img.ImageUrl**" />
}
如何創建一條新路由來將此參數傳遞給操作?
謝謝!
你是這個意思?
routes.MapRoute(
"GetImage",
"Images/GetImage/{*url}",
new { controller = "Images", action = "GetImageAsync" }
);
我不確定你為什么需要所有這些。 為了獲取所有圖像 url 的 AsyncController + 路由似乎有點矯枉過正......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.