Вы не можете отправлять сложные объекты, как это:
<%=Url.Action("GetImageForArticle", "Resources", new { article = item })%>
Только простые скалярные свойства:
<%=Url.Action("GetImageForArticle", "Resources", new {
Id = item.Id,
Foo = item.StringFoo,
Bar = item.IntegerBar
})%>
Так что хорошей практикой в этом случае является отправка только идентификатора:
<%=Url.Action("GetImageForArticle", "Resources", new { id = item.Id }) %>
и затем действие вашего контроллера извлекает соответствующую модель, где бы она ни хранилась, укажите этот идентификатор:
public ActionResult GetImageForArticle(int id)
{
ArticleSummary article = _someRepository.GetArticle(id);
if (article == null || !article.ContainsValidThumbNail())
{
return null;
}
return File(article.ThumbNail, article.ThumbNaiType);
}