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