MVC控制器FileContentResult方法未被调用

时间:2013-11-29 18:23:50

标签: asp.net-mvc filecontentresult

我的测试设置包含一个带有foreach的视图,该视图遍历一个简单的模型,目的是为模型集合中的每个项目渲染一个图像。在循环内部是两个@ Url.Action助手,它们在控制器中调用FileContentResult方法,除了从视图中获取参数而另一个参数变量是硬编码的。

@foreach (var i in Model.FeaturedItems)
{
<img src="@Url.Action("GetFooImage", "Home", new {})" alt="@i.Name" />
<img src="@Url.Action("GetFoobarImage", "Home", new {i.ItemID, Entity="item", Size="m"})" alt="@i.Name" />
}

在我的控制器中,两种方法是:

public FileContentResult GetFooImage() // variables hard coded in body
public FileContentResult GetFoobarImage(int id, string entity, string size)

GetFooImage()返回一个图像。 FileContentResult GetFoobarImage()没有。

这是一个谜: 如果我在GetFoobarImage上放置一个断点,它甚至都不会被击中。 我无法弄清楚为什么GetFooImage被调用但是GetFoobarImage没有

1 个答案:

答案 0 :(得分:4)

仔细检查Url.Action

@ Url.Action(“GetFoobarImage”,“Home”,new {i.ItemID,Entity =“item”,Size =“m”})“

您的通话中缺少“id =”。它应该是

@Url.Action("GetFoobarImage", "Home", new {id = i.ItemID, Entity="item", Size="m"})

同时仔细检查您的签名。 Url.Action中的实体与方法声明中的Entiry匹配存在问题。不确定这是否是您示例中的拼写错误。