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