簡體   English   中英

將 url 作為參數傳遞給 controller 動作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM