c# - 从 MVC View 调用方法不起作用

标签 c# asp.net asp.net-mvc asp.net-mvc-4 razor

我熟悉 C#/.net,但对 .net mvc 和 razor 东西还很陌生, 我想做的是,我想从 View 中调用 Controller 中的方法以将字符串路径呈现为二进制, 所以我在 View 中这样做:

<img src="@Url.Action("ReadFile", "FLK",  new { path = Model.Pict })" />

Controller 中的这个:

public void ReadFile(string path)
{
    Response.ContentType = "image";
    Response.BinaryWrite(System.IO.File.ReadAllBytes(path));
}

但是当我在 Controller 中放置一个调试点时,我的调试点从未触发过,有什么线索吗?需要一些建议谢谢。

最佳答案

Controller 中的 ReadFile() 方法应该是这样的 -

public ActionResult ReadFile(string path)
{
    byte[] imgBytes = System.IO.File.ReadAllBytes(path);
    return File(imgBytes, "image/png"); 
}

在这里,您的操作方法将图像文件读入字节数组,然后使用 ActionResult 基类的 File() 方法将内容发送给调用者。

所以你可以像这样在你的 View 中使用它 -

<img src='@Url.Action("ReadFile", new { path = Model.Pict }))'/>

关于c# - 从 MVC View 调用方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25990517/

相关文章:

c# - EF 代码首先批量插入

c# - 如何使用ModelState.IsValid通过条件在单个 View 中验证多个ViewModel

javascript - 在包含的文件中发布后重新选择复选框

c# - 如果一个分部类继承自一个类,那么所有其他具有相同名称的分部类也应该继承相同的基类吗?

asp.net-mvc - 将 Kendo UI MVC MultiSelect 序列化为数组

c# - 如何查找 'The program .. has exited with code -2147483645 (0x80000003).' 中的错误

asp.net - 在 ASP.Net MVC 中禁用每个请求的 session 状态

android - 创建一个返回 JSON 而不是 XML 的 ASP.net WebService

c# - 重构 C# 国际象棋游戏以遵循 MVC 设计模式

c# - .net 十进制值 1m 和 1.0000m 之间有什么实际区别吗?