如何让HomeController调用ImageController

时间:2014-09-26 12:32:19

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

首先,我是MVC的新手,所以我有一个学习曲线。

阅读以下帖子后发帖 - Display image from database in asp mvc

我已根据上面的帖子在_Layout.cshtml包含以下标记和剃刀

<img src="@Url.Action("show", "image", new { imageName = Session["WebSite.LogoFileName"]})" />

共享视图_Layout.cshtml正在调用具有

的HomeController
[AllowAnonymous]
public ActionResult Index()
{
    return View();
}

根据我在帖子中的理解,我在HomeController中也包括以下内容。

[AllowAnonymous]
public ActionResult Show()
{
    return View();
}

图像控制器具有以下

// GET: /Image/
public ActionResult Show(string imageName)
{
    var imageData = ReadBytesFromDatabase(Session["WebSite.LogoFileName"].ToString());

    return File(imageData, "image/jpg");  //I have excluded the File method on purpose.
}

1 个答案:

答案 0 :(得分:1)

我认为你错了Url.Action For Html.Action。

Url.Action会创建指向该操作的链接。所以在这种情况下它会产生类似的东西:

/Images/Show/ImageName.png

但是你想要行动的结果。因此,将Url.Action更改为Html.Action应该可以解决问题。