簡體   English   中英

Url.Action無法調用控制器方法

[英]Url.Action fails to call controller method

我正在嘗試使用此視圖在頁面上顯示一些圖像

Details.cshtml

@foreach (var imagePath in Model.Images)
{
    <img src="@Url.Action("GetImage", "Receiving", new { @imagePath = imagePath })" />
}

ReceivingController.cs

public ActionResult GetImage(string imagePath)
{
    var folder = ConfigurationManager.AppSettings["ImagesPath"];
    var path = Path.Combine(folder, imagePath);
    byte[] image = System.IO.File.ReadAllBytes(path);
    return File(image, "image/jpg");
}

但是,當我在控制器中設置一個斷點時,它永遠不會被命中,並且圖像當然無法加載。

我可以看到從視圖傳遞的值是一個路徑,例如"C:\\\\inetpub\\\\wwwroot\\\\SiteName\\\\Images\\\\3000\\\\1\\\\1\\\\2.jpg"

我試圖將@Url.Action' to更改@Url.Action' to @ Html.Action`只是因為我不知道還要嘗試什么,但是我遇到了錯誤

使用自定義TextWriter時,OutputStream不可用

我不明白為什么未調用控制器。

我注意到,如果只是導航到URL Receiving\\GetImage\\whyareyounotworking ,就會觸發控制器操作。

我嘗試添加以下路線,但沒有更改

routes.MapRoute(
    name: "GetImage",
    url: "receiving/GetImage/{imagePath}",
    defaults: new { controller = "Receiving", action = "GetImage" }
);

刪除此:

@imagePath

因此,您將有一個類似url.action的內容:

<img src="@Url.Action("GetImage", "Receiving", new { imagePath = imagePath })" />

似乎與傳入的字符串有關。

從文件路徑的末尾刪除.jpg之后, .jpg回控制器,我的斷點現在命中了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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